Asp.net 相同的ScriptResource,axd加载了两次
早上好 我们有一个现有的应用程序,它在使用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丢失了,我得到了错误信息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丢失了,我得到了错误信
无法获取未定义或空引用的属性“PageRequestManager”
问题是两个独立的虚拟机上的浏览器独立
应用程序在经典模式下运行,web.config不包含
//从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"/>