【问题标题】:WebResource.axd throwing exceptions in web farmWebResource.axd 在网络场中引发异常
【发布时间】:2011-01-17 22:04:02
【问题描述】:

我们有大约 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& completedSynchronously)

服务器网址损坏

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

所有其他服务器网址

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

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

有什么想法吗?

【问题讨论】:

    标签: c# asp.net gac webresource.axd scriptresource.axd


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢克里斯。我想我只是想了解是否所有服务器都应用了相同的补丁,这台服务器如何以不同的 DLL 结束,然后将哈希值传递给其他服务器?
      猜你喜欢
      • 1970-01-01
      • 2016-06-10
      • 2013-07-28
      • 2011-02-06
      • 2015-06-11
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多