我们有一个服务网站的大约12台服务器阵列。在过去几个小时内,一台服务器已经开始为WebResource.axd和ScriptResource.axd请求抛出异常。
异常
System.Web.HttpException - 这是一个无效的脚本资源请求。
堆栈跟踪
at System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context)
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)
服务器网址损坏
/WebResource.axd?d=S6kjkBsrIKni9uO5HCkv0c8eYObzibWXn9R6A7Yr_Fy7CW4dRFZm1HfcnUTEZ8xBYZDM-5zeTVk1tTgC1hp7d5YYw3o1&t=634308186300177825
所有其他服务器网址
/WebResource.axd?d=yj6PW1hbOvqhMkOh2gYGlw2&t=634207187366247462
我检查了每台服务器的web.config,machine.config,它们都是相同的。到目前为止能找到的唯一区别是,在问题开始之前,服务器已经打了补丁,之后,有问题的服务器看起来正在使用不同版本的System.Web.dll给其他人?
有什么想法吗?
答案 0 :(得分:2)
找到问题的根本原因。问题服务器应用了一个安全补丁,更新了System.Web.dll。由于某种原因,我们的托管服务提供商没有更新任何其他的dll,反过来这个服务器生成不同的加密密钥。
要确定哪个dll受到影响,我使用以下方法解密webresource.axd查询字符串参数:
答案 1 :(得分:0)
“?d = yj6PW1hbOvqhMkOh2gYGlw2& t = 634207187366247462”是某种方式(哈希或其他东西?)到system.web.dll中的资源的链接,因此该服务器上的不同dll的链接无效是可以理解的。