最近几个月发布程序比较多,遇到了各种IIS发布web程序后无法访问的问题。原以为对各种问题都已经摸的差不多了,但今天又为一问题折腾了大半天。具体过程祥记如下:
在server2008 R2 64位系统上发布web应用程序,应用程序池设置为:.net 4.0 经典模式,“启动32位应用程序”设置为true。这是跟据之前的经验,设置的,很多时候都管用。但今天跳出这样的错误:
根据以往经验,这个问题这么干就行了:
打开以下网址:http://www.aspnetresources.com/tools/keycreator.aspx
点击:Generated
生成的Machinekey:
MachineKey
<machineKey
validationKey="86B6275BA31D3D713E41388692FCA68F7D20269411345AA1C17A7386DACC9C46E7CE5F97F556F3CF0A07159659E2706B77731779D2DA4B53BC47BFFD4FD48A54"
decryptionKey="9421E53E196BB56DB11B9C25197A2AD470638EFBC604AC74CD29DBBCF79D6046"
validation="SHA1"
decryption="AES"
/>
MachineKey的使用方法:
将MachineKey添加至Web.config文件的<system.web></system.web>之间
MachineKey的作用:
- ASP.net 使用 forms authentication 时的 cookie 数据的加密和解密。以确保这部分数据不会被篡改
- viewstate 数据的加密和解密。以确保这部分数据不会被篡改。
- 使用进程外session(out-of-process session)时,对会话状态标识进行验证。
更多详细信息请参考:
http://msdn.microsoft.com/zh-cn/library/ms998288(en-us).aspx
”