asp.net虚拟主机时怎么解决验证失败问题

来源:爱站网时间:2022-01-04编辑:网友分享
很多朋友在asp.net虚拟主机时都会出现MAC验证失败错误的问题,那这个问题需要怎么解决比较好呢!下面就让爱站技术频道小编给大家详细讲解下,希望能帮助到有需要的朋友。

出现错误:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

源错误:

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL:

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:

<%@ Page Language="C#" Debug="true" %>
或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>


请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。

解决方法:因为.NET在对客户端数据与服务器间传送过程中,需要对数据进行加密与解密,而加密与解密算法可以在web.config里进行配置,在web.config中,validationKey和decryptionKey的默认值是AutoGenerate,由系统随机生成密钥,如果在本地或者使用的是独立主机通常不会有什么问题,但是使用虚拟主机,一台服务器上有多个虚拟主机存在时就会出现以上问题,MSDN中也特别指出不能在群集中使用 AutoGenerate应该指定固定的密钥值,这就需要在web.config中添加关于machineKey的配置项,并手动设置其中的密钥值,这里请注意,不同加密算法对于密钥的最大字符长度是不同的,在这里能够使用的有AES,DES,3DES,SHA1,MD5,我只知道DES的密钥字符长度为16,3DES长度为48,手动设置时密钥长度必须等于其最大长度,否则会出错!至于密钥的16进制值可以随便输入。

具体操作方法如下:

找到网站运行根目录下的web.config文件,设置时,请自行修改KEY值,这关系到服务器的加密安全。

代码:<machineKey validation=”SHA1″ validationKey=”78EA3850338FBADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4″ decryptionKey=”5FC88DFC24AE12BC” />

上述文章的内容,不知道各位小伙伴都看明白了没有,还要不懂的地方,记得要来爱站技术频道网站找小编咨询。想看更多技术文章,关注我们也可以。

上一篇:asp.net文件怎么进行添加/修改/删除操作

下一篇:做Coolite测试遇到问题的解决方法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载