ASP.NET AXD 资源在客户端被阻止?

标签 asp.net telerik webresource.axd axd

我正在托管一个 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 无效 View 状态或无效 base64 字符串)
  • 指向同一 WebResource.axd 的链接,但通过不同的主机 header (相同的“连接重置”错误消息)。

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

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

关于可能出什么问题或者甚至要问什么进一步的问题有什么想法吗?有人见过这样的东西吗?

最佳答案

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

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

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

关于ASP.NET AXD 资源在客户端被阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364442/

相关文章:

wpf - RadTabControl 在 swiching tabitems 中重新加载内容

asp.net - 如何解决 ASP .Net 中的 “This is an invalid webresource request” 错误

asp.net - 在 ASP.NET 4 WebForms 中压缩和缩小 WebResource.axd 和 ScriptResource.axd

asp.net - 如何使用私有(private) ip 在 API 上进行获取请求?

c# - 在 asp.net 中验证密码

c# - 绑定(bind) Telerik RadTreeView 客户端

c# - 在数字文本框字段中添加零

c# - WebResource 是空白页

c# - 在数据绑定(bind)期间跳过项目

c# - Veracode目录遍历问题c#