首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同的ScriptResource,axd加载两次

相同的ScriptResource,axd加载两次
EN

Stack Overflow用户
提问于 2014-09-30 06:54:52
回答 2查看 937关注 0票数 0

早上好,

在IIS7.5/ 4.5的WindowsServer2008R2上,我们有一个稳定且无错误的现有应用程序。

我们计划使用IIS8.5/ 4.5向WindowsServer2012R2迁移,现在遇到的问题是,应用程序(完全相同的二进制文件/配置)确实被注入了两个ScriptResource.axd文件,但都包含相同的内容(不同的URL)。

正因为如此,提供"Sys.WebForms“的Sys.WebForms丢失了,我得到了错误

Unable to get property 'PageRequestManager' of undefined or null reference

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

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

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

你好,Verni

伊迪丝:

web.config片段(system.web部分)

代码语言:javascript
复制
<system.web>
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" targetFramework="4.5" enableVersionHeader="false" />
<sessionState timeout="30" mode="StateServer" stateConnectionString="tcpip=...:42424" />
<httpModules>
  <add name="LinkPartnerModule" type="....LinkPartnerModule, ..." />
  <add name="RedirectModule" type="....RedirectModule, ..." />
  <add name="ScriptCompressorModule" type="ScriptCompressorModule, ..." />
</httpModules>
<httpHandlers>
  <remove verb="*" path="scriptresource.axd"/> // added from StackOverflow
  <add verb="*" path="*js.axd" type="ScriptCompressorHandler" />
</httpHandlers>
<compilation debug="false" defaultLanguage="c#" targetFramework="4.5">
  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>
<globalization culture="de-DE" enableClientBasedCulture="true" fileEncoding="utf-8" uiCulture="de" />
<pages compilationMode="Auto" styleSheetTheme="*" validateRequest="false" enableEventValidation="false" controlRenderingCompatibilityVersion="3.5" enableViewState="true" clientIDMode="AutoID">
</system.web>
<system.web.extensions>
  <scripting>
    <scriptResourceHandler enableCompression="true" enableCaching="true" />
  </scripting>
</system.web.extensions>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-30 08:30:16

我解决了问题。

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

错误配置的主要原因是在没有URL重写规则的情况下激活SSL卸载的“函数”,名称为'ARR_farmName_loadbalance_SSL‘。如果要删除此规则,管理器将自动激活SSL卸载。

谢谢罗本,他把我带到了HTTPS / SSL。

票数 0
EN

Stack Overflow用户

发布于 2014-09-30 07:05:06

对于在经典模式下运行的应用程序来说,我们也遇到了这个问题。结果发现,问题是为.axd扩展注册了多个httphandler。

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

类似于:

代码语言:javascript
复制
<remove verb="*" path="scriptresource.axd"/>

编辑:

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

解决方案是在HTTPS上激活script压缩处理程序,或者确保模块不在HTTPS上运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26114553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档