WebResource.axd在Web场中抛出exception

我们有一组服务于网站的大约12台服务器。 在过去几个小时内,一台服务器已经开始为WebResource.axd和ScriptResource.axd请求抛出exception。

例外

System.Web.HttpException – 这是一个无效的脚本资源请求。

堆栈跟踪

在System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context)
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)

服务器URL损坏

/WebResource.axd?d=S6kjkBsrIKni9uO5HCkv0c8eYObzibWXn9R6A7Yr_Fy7CW4dRFZm1HfcnUTEZ8xBYZDM-5zeTVk1tTgC1hp7d5YYw3o1&t=634308186300177825

所有其他服务器URL

/WebResource.axd?d=yj6PW1hbOvqhMkOh2gYGlw2&t=634207187366247462

我检查了每个服务器的web.config,machine.config,它们都是相同的。 到目前为止能找到的唯一区别是,在问题开始之前,服务器已经打补丁,之后,有问题的服务器看起来正在使用不同版本的System.Web.dll给其他人?

有任何想法吗?

找到问题的根本原因。 问题服务器应用了一个安全补丁,更新了System.Web.dll。 由于某种原因,我们的托管服务提供商没有更新任何其他的dll,反过来这个服务器生成不同的加密密钥给其他人。

为了解决哪个DLL受到影响,我使用以下方法解密了webresource.axd查询字符串参数:

http://blogs.telerik.com/aspnet-ajax/posts/07-03-27/debugging-asp-net-2-0-web-resources-decrypting-the-url-and-getting-the-resource- name.aspx

“?d = yj6PW1hbOvqhMkOh2gYGlw2&t = 634207187366247462”是某种方式(哈希或其他什么?)到system.web.dll中的资源的链接,所以在该服务器上链接无效的不同dll是可以理解的。