IsolateApps导致解密密钥指定具有无效的hex字符
我正在使用身份validation的MVC 4网站上工作。 该网站要求我指定机器键值。 我通过IIS界面取消了“在运行时自动生成”,生成了键值并select了“为每个应用程序生成唯一键”
web.config条目看起来像这样:
<machineKey decryption="DES" decryptionKey="{hex-key value},IsolateApps" validationKey="{hex-key value},IsolateApps" />;
虽然这似乎在另一个web项目上工作正常,它会导致我正在使用的开发机器上(在IIS-Express和IIS 7.5中)的“解密密钥指定具有无效的hex字符”错误。
从键值中删除",IsolateApps"
解决了这个问题,但由于我在生产中需要这个选项,所以我现在不想删除它,只是在部署时出现这个问题。
是什么赋予了? 开发盒是一个SQL Server 2008 R2与.net 2.0和.net 4.0的框。
IsolateApps
修饰符会导致ASP.NET为您的服务器上的每个应用程序生成一个唯一的键。 这只适用于在运行时让ASP.NET自动生成密钥的情况。
如果您没有让ASP.NET自动生成密钥,而是使用decryptionKey="{hex-key value}"
指定密钥,那么让ASP.NET为每个应用程序使用不同密钥的方法是只需在每个应用程序的Web.config中指定一个不同的键。
IISconfigurationgraphics用户界面允许你创build一个带有明确键的Web.config和IsolateApps
修饰符,这是无效的,在我看来是configurationGUI中的一个错误。
您可以通过将以下内容添加到web.config中的machineKey元素(compatibilityMode =“Framework20SP1”)来解决此问题。 请参阅链接
这可以通过将machineKey行添加到您的web.config中,并指定您的密钥来解决(如果使用自己的密钥,当然这个很容易猜到):
<configuration> <system.web> <machineKey decryptionKey="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0" validationKey="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF00123456789ABCDEF0123456789ABCDEF0123456789ABCDEF00123456789ABCDEF0123456789ABCD" /> </system.web> </configuration>