asp.net 虛擬主機時常出現(xiàn)MAC驗證失敗錯誤之解決方法
“/”應(yīng)用程序中的服務(wù)器錯誤。
--------------------------------------------------------------------------------
驗證視圖狀態(tài) MAC 失敗。如果此應(yīng)用程序由網(wǎng)絡(luò)場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗證算法。不能在群集中使用 AutoGenerate。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細信息。
異常詳細信息: System.Web.HttpException: 驗證視圖狀態(tài) MAC 失敗。如果此應(yīng)用程序由網(wǎng)絡(luò)場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗證算法。不能在群集中使用 AutoGenerate。
源錯誤:
只有在調(diào)試模式下進行編譯時,生成此未處理異常的源代碼才會顯示出來。若要啟用此功能,請執(zhí)行以下步驟之一,然后請求 URL:
1. 在產(chǎn)生錯誤的文件的頂部添加一條“Debug=true”指令。例如:
<%@ Page Language="C#" Debug="true" %>
或:
2. 將以下的節(jié)添加到應(yīng)用程序的配置文件中:
<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>
請注意,第二個步驟將使給定應(yīng)用程序中的所有文件在調(diào)試模式下進行編譯;第一個步驟僅使該特定文件在調(diào)試模式下進行編譯。
重要事項: 以調(diào)試模式運行應(yīng)用程序一定會產(chǎn)生內(nèi)存/性能系統(tǒng)開銷。在部署到生產(chǎn)方案之前,應(yīng)確保應(yīng)用程序調(diào)試已禁用。
解決方法:因為.NET在對客戶端數(shù)據(jù)與服務(wù)器間傳送過程中,需要對數(shù)據(jù)進行加密與解密,而加密與解密算法可以在web.config里進行配置,在web.config中,validationKey和decryptionKey的默認值是AutoGenerate,由系統(tǒng)隨機生成密鑰,如果在本地或者使用的是獨立主機通常不會有什么問題,但是使用虛擬主機,一臺服務(wù)器上有多個虛擬主機存在時就會出現(xiàn)以上問題,MSDN中也特別指出不能在群集中使用 AutoGenerate應(yīng)該指定固定的密鑰值,這就需要在web.config中添加關(guān)于machineKey的配置項,并手動設(shè)置其中的密鑰值,這里請注意,不同加密算法對于密鑰的最大字符長度是不同的,在這里能夠使用的有AES,DES,3DES,SHA1,MD5,我只知道DES的密鑰字符長度為16,3DES長度為48,手動設(shè)置時密鑰長度必須等于其最大長度,否則會出錯!至于密鑰的16進制值可以隨便輸入。
具體操作方法如下:
找到網(wǎng)站運行根目錄下的web.config文件,如下圖加亮行所示加上相應(yīng)的項。設(shè)置時,請自行修改KEY值,這關(guān)系到服務(wù)器的加密安全。圖片看不清晰請點擊圖片查看。
代碼:<machineKey validation="SHA1" validationKey="78EA3850338FBADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24AE12BC" />
- ASP.NET 運行時錯誤: 沒有為擴展名“.asax”注冊的生成提供程序修正版
- 運行asp.net時出現(xiàn) http錯誤404-文件或目錄未找到
- asp.net 繼承自Page實現(xiàn)統(tǒng)一頁面驗證與錯誤處理
- asp.net 從客戶端中檢測到有潛在危險的 Request.Form 值錯誤解
- asp.net 編譯器錯誤信息: CS0006: 未能找到元數(shù)據(jù)文件 該死的.NET
- Asp.Net 程序錯誤Runtime Error原因與解決
- asp.net網(wǎng)站的404錯誤頁面的正確設(shè)置方法
- asp.net運行提示未將對象引用設(shè)置到對象的實例錯誤解決方法
- IIS部署asp.net報404錯誤的解決方法
- asp.net無法加載oci.dll等錯誤的解決方法
- asp.net錯誤捕獲(錯誤處理)page_error事件使用方法
- asp.net iis7默認文檔錯誤異常的解決方法
- ASP.Net中命名空間Namespace淺析和使用例子
- ASP.NET中MVC使用AJAX調(diào)用JsonResult方法并返回自定義錯誤信息
- asp.net操作過程中常見錯誤的解決方法
- asp.net中“從客戶端中檢測到有潛在危險的Request.Form值”錯誤的解決辦法
- ASP.NET MVC命名空間時引起錯誤的解決方法
相關(guān)文章
AspNetCore&MassTransit?Courier實現(xiàn)分布式事務(wù)的詳細過程
MassTransit?Courier是一種用于創(chuàng)建和執(zhí)行帶有故障補償?shù)姆植际绞聞?wù)的機制,它可以用于滿足本地事務(wù)的需求,也可以在分布式系統(tǒng)中實現(xiàn)分布式事務(wù),這篇文章主要介紹了AspNetCore&MassTransit?Courier實現(xiàn)分布式事務(wù),需要的朋友可以參考下2022-10-10擴展 Entity Framework支持復(fù)雜的過濾條件(多個關(guān)鍵字模糊匹配)
之前遇到一個棘手的Linq to EF查詢的技術(shù)問題,現(xiàn)有產(chǎn)品表Product,需要根據(jù)多個關(guān)鍵字模糊匹配產(chǎn)品名稱, 現(xiàn)將解決方案分享出來,按興趣的朋友可以參考下2012-12-12在asp.net下實現(xiàn)Option條目中填充前導(dǎo)空格的方法
在asp.net下實現(xiàn)Option條目中填充前導(dǎo)空格的方法...2007-03-03asp.net(c#)做一個網(wǎng)頁數(shù)據(jù)采集工具
最近做一個網(wǎng)站,該網(wǎng)站需要添加4000多 產(chǎn)品信息,如果用人工方法去別的網(wǎng)站copy那至少要花費半月時間才能完成,所以我個辦法使用c#作出來了一個網(wǎng)頁數(shù)據(jù)采集軟件.2009-12-12.Net Core中間件之靜態(tài)文件(StaticFiles)示例詳解
這篇文章主要給大家介紹了關(guān)于.Net Core中間件之靜態(tài)文件(StaticFiles)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧2018-09-09asp.net core razor自定義taghelper的方法
這篇文章主要介紹了asp.net core razor自定義taghelper的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09