Asp.net 相同的ScriptResource,axd加载了两次

Asp.net 相同的ScriptResource,axd加载了两次,asp.net,.net-4.5,iis-8,Asp.net,.net 4.5,Iis 8,早上好 我们有一个现有的应用程序,它在使用IIS 7.5/.NET 4.5的Windows Server 2008R2上运行稳定且无错误 我们计划使用IIS 8.5/.NET 4.5迁移到Windows Server 2012R2,现在遇到了一个问题,即应用程序(相同的二进制文件/配置)确实被注入了两个ScriptResource.axd文件,但两个文件都包含相同的内容(不同的URL) 因此,提供“Sys.WebForms”的MicrosoftAjaxWebforms.js丢失了,我得到了错误信

早上好

我们有一个现有的应用程序,它在使用IIS 7.5/.NET 4.5的Windows Server 2008R2上运行稳定且无错误

我们计划使用IIS 8.5/.NET 4.5迁移到Windows Server 2012R2,现在遇到了一个问题,即应用程序(相同的二进制文件/配置)确实被注入了两个ScriptResource.axd文件,但两个文件都包含相同的内容(不同的URL)

因此,提供“Sys.WebForms”的MicrosoftAjaxWebforms.js丢失了,我得到了错误信息

无法获取未定义或空引用的属性“PageRequestManager”

问题是两个独立的虚拟机上的浏览器独立

应用程序在经典模式下运行,web.config不包含标记。 有所有最新的服务器更新。 应用程序的所有其他功能都正常工作

我希望你们中的一些人也遇到同样的问题,并知道解决办法

你好,维尼

伊迪丝:

web.config(system.web部分)的代码片段


//从StackOverflow添加

对于在经典模式下运行的应用程序,我们也遇到了这个问题。当时的问题是为.axd扩展注册了多个HttpHandler

如果您在web.config中添加了.axd处理程序,请确保在添加它们之前删除它们,这可能会解决您的问题

比如:

<remove verb="*" path="scriptresource.axd"/>

编辑:

当查看web.config时,我非常确定问题与scriptcompressorhandler和模块有关。正如您所述,这只会在使用HTTPS时发生,我怀疑发生的情况是,模块仍然在HTTPS上运行,但处理程序没有。这意味着模块将压缩版本发送到常规scriptresource处理程序,并输出脚本的新副本

解决方案是通过HTTPS激活scriptcompressorhandler,或者确保模块没有通过HTTPS运行。

我解决了这个问题

原因是配置错误的ARR(应用程序请求路由器), 其中SSL卸载处于活动状态

错误配置的主要原因是“函数”,如果没有名称为“ARR\u farmName\u loadbalance\u SSL”的URL重写规则,则会激活SSL卸载。 如果将删除此规则,管理器将自动激活SSL卸载


感谢Robban,他将我带到了HTTPS/SSL。

如果您尝试使用指定的名称删除它,也许可以?更新了答案,稍作修改。听起来这确实是你的问题。您可以更新您的答案并显示您的web.config的一部分,以便我可以查看一下吗?现在我得到了一个错误,例如添加了web.config的片段“unknown name attribute”(ScriptCompressorHandler是HTTP only/not enabled for HTTPS,我发现只有在没有此ScriptCompressor的情况下才会出现问题,因此此问题是HTTPS only有趣的,我的建议当时是完全错误的。删除scriptresource处理程序不会有任何效果,因为您实际上并没有添加自己的处理程序。用我的建议更新了我的答案。)我相信问题是。
<remove verb="*" path="scriptresource.axd"/>