5

我有一个我托管的 Web 应用程序,我的一个客户报告说该站点中包含的某些 Telerik javascript 库(但不是全部)无法正常工作。

到目前为止,我能够诊断的是,在该过程的某个时刻,包含 Telerik javascript 代码的 WebResource.axd 资源被阻止了。要求客户端使用相同的查询字符串直接导航到 AXD 文件本身会在 Internet Explorer 中产生“与服务器的连接已重置”错误消息。

客户端已尝试从其所在位置的多台计算机、防火墙和网络之外的计算机以及在家中运行的计算机下载该文件,但每次都出现相同的错误。他们尝试过同时使用 Internet Explorer 和 Firefox。

但是,我能够在我们的托管网络内部、外部以及我的家庭连接中成功下载相同的文件。

根据 IIS 日志,所有记录的下载资源的尝试都产生了 200 HTTP OK 结果。

其他尝试过的事情:

  • 指向不存在的 404.axd 的链接(按预期给出黄色 ASP.NET 404 错误消息)
  • 指向 WebResource.axd 的链接,但带有指向不存在资源的无效查询字符串(如预期的那样,给出黄色的 ASP.NET 无效视图状态或无效 base64 字符串)
  • 指向相同 WebResource.axd 的链接,但通过不同的主机标头(相同的“连接重置”错误消息)。

我现在不知所措,甚至可能是此时的问题。多年来,我们的托管服务器一直在托管数十种不同的 ASP.NET 应用程序(包括相关应用程序的几个实例),这是我看到的第一个投诉。

我 99% 确定问题出在客户端,防火墙或路由器内容过滤配置不正确,但这并不能解释为什么客户端会在防火墙外和家里看到同样的问题。

关于可能出现什么问题或什至要问什么进一步问题的任何想法?有没有人看到过这样的东西?

4

3 回答 3

4

如果这种情况发生在用于 ASP.NET 的经典 RadControls 中,请尝试为页面上的控件设置 UseEmbeddedScripts="false"。这将使它们从 RadControls 文件夹(物理 .js 文件)中提供所有脚本,而不是使用嵌入式资源 (WebResource.axd)。当然,您必须确保在 RadControls 文件夹中有脚本文件。

如果 RadControls for ASP.NET AJAX 发生这种情况,则使用脚本管理器(ScriptResource.axd 而不是 WebResource.axd)下载控件脚本。在任何情况下,您都可以尝试使用 Telerik RadScriptManager 而不是 ASP.NET ScriptManager - 这会将所有脚本组合并压缩到一个请求中。

最后,您可以要求您的客户下载并安装适用于 IE 的 Fiddler 或适用于 Firefox 的 Firebug,并检查失败的请求到底发生了什么(例如服务器响应、响应正文中的内容等)。

于 2010-03-02T16:12:29.587 回答
0

从来没有弄清楚问题是什么,但将 RadControls 更新到最新版本(Q1'09 最终版本)似乎可以解决问题。

于 2010-03-08T19:37:39.663 回答
0

要从页面中消除WebResource.axdScriptResource.axd,您需要

  • 使用 Reflector 或 ILSpy 打开相关的组件,然后从资源部分保存其嵌入的 JS 文件。
  • 现在使用 asp:ScriptManager 将它们添加为脚本引用

稍后这些定义将呈现为:

<script src="staticJS1.js" type="text/javascript"></script> 
<script src="staticJS2.js" type="text/javascript"></script> 

并且不会再被屏蔽。

<asp:ScriptManager ID="Scriptmanager1" runat="server">
        <Scripts>
            <asp:ScriptReference Name="MicrosoftAjaxWebForms.js" Assembly="System.Web.Extensions"
                Path="~/staticJS1.js" />
            <asp:ScriptReference Name="MicrosoftAjax.js" Assembly="System.Web.Extensions" Path="~/staticJS2.js" />
        </Scripts>
</asp:ScriptManager>
于 2014-01-07T07:13:14.230 回答