我们有一个大约12台服务器的服务器,这些服务器为网站提供服务。在过去的几个小时中,一台服务器已开始为webresource.axd和scriptresource.axd请求提供例外。

例外

system.web.httpexception-这是无效的脚本资源请求。

堆栈跟踪

在system.web.handlers.scriptresourcehandler.processrequest(httpcontext上下文)
在System.Web.httpapplication.callhandlerexecutionstep.system.web.httpapplication.iexecutionstep.execute()
在system.web.httpapplication.executestep(iexecutionStep step,boolean&completedsenly)

破损的服务器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-2-0-web-resources-decrypting-the-url-and-getting-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-resource- name.aspx

其他提示

“?d = yj6pw1hbovqhmkoh2gyglw2&t = 634207187366247462”是某种链接(hash还是hash还是其他?)与system.web.dll中的资源。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top