1

我们有一组大约 12 台服务器为网站提供服务。在过去的几个小时里,一台服务器开始为 WebResource.axd 和 ScriptResource.axd 请求抛出异常。

例外

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

堆栈跟踪

在 System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context)
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔&完成同步)

损坏的服务器 URL

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

所有其他服务器 URL

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

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

有任何想法吗?

4

2 回答 2

2

找到了问题的根本原因。问题服务器应用了更新 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-名称.aspx

于 2011-01-20T22:38:37.000 回答
0

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

于 2011-01-17T22:54:17.490 回答