|
“/”應(yīng)用程序中的服務(wù)器錯(cuò)誤。
--------------------------------------------------------------------------------
驗(yàn)證視圖狀態(tài) MAC 失敗。如果此應(yīng)用程序由網(wǎng)絡(luò)場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗(yàn)證算法。不能在群集中使用 AutoGenerate。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.Web.HttpException: 驗(yàn)證視圖狀態(tài) MAC 失敗。如果此應(yīng)用程序由網(wǎng)絡(luò)場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗(yàn)證算法。不能在群集中使用 AutoGenerate。
源錯(cuò)誤:
|
解決方法:因?yàn)?NET在對客戶端數(shù)據(jù)與服務(wù)器間傳送過程中,需要對數(shù)據(jù)進(jìn)行加密與解密,而加密與解密算法可以在web.config里進(jìn)行配置,在web.config中,validationKey和decryptionKey的默認(rèn)值是AutoGenerate,由系統(tǒng)隨機(jī)生成密鑰,如果在本地或者使用的是獨(dú)立主機(jī)通常不會有什么問題,但是使用虛擬主機(jī),一臺服務(wù)器上有多個(gè)虛擬主機(jī)存在時(shí)就會出現(xiàn)以上問題,MSDN中也特別指出不能在群集中使用 AutoGenerate應(yīng)該指定固定的密鑰值,這就需要在web.config中添加關(guān)于machineKey的配置項(xiàng),并手動設(shè)置其中的密鑰值,這里請注意,不同加密算法對于密鑰的最大字符長度是不同的,在這里能夠使用的有AES,DES,3DES,SHA1,MD5,我只知道DES的密鑰字符長度為16,3DES長度為48,手動設(shè)置時(shí)密鑰長度必須等于其最大長度,否則會出錯(cuò)!至于密鑰的16進(jìn)制值可以隨便輸入。
具體操作方法如下:
找到網(wǎng)站運(yùn)行根目錄下的web.config文件,如下圖加亮行所示加上相應(yīng)的項(xiàng)。設(shè)置時(shí),請自行修改KEY值,這關(guān)系到服務(wù)器的加密安全。圖片看不清晰請點(diǎn)擊圖片查看。
代碼:<machineKey validation="SHA1" validationKey="78EA3850338FBADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24AE12BC" />Javascript:window.open(this.src); alt=圖片點(diǎn)擊可在新窗口打開查看 src="/d/file/itjie/ASPNETjishu/2014-10-23/fa3cca0b19337332ecaa7dd57fe83718.gif" width=550 border=0>
AspNet技術(shù):asp.net 虛擬主機(jī)時(shí)常出現(xiàn)MAC驗(yàn)證失敗錯(cuò)誤之解決方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。