提示信息

IIS6升级到 IIS 7AJax出错问题 设置 ajax.dll web.config 配置

小美狐 已关注

把 <system.web> 里的ajax 配置 转移到<system.webServer> 就OK 了

<system.web>

</system.web>

<system.webServer>

  1. <modules runAllManagedModulesForAllRequests="true"/>
  2. <security>
  3. <requestFiltering>
  4. <requestLimits maxAllowedContentLength="1048576000"></requestLimits>
  5. </requestFiltering>
  6. </security>
  7. <staticContent>
  8. <mimeMap fileExtension=".*" mimeType="text/xml" />
  9. </staticContent>
  10. <handlers>
  11. <add name="ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
  12. <remove name="WebServiceHandlerFactory-Integrated" />
  13. <remove name="ScriptHandlerFactory" />
  14. <remove name="ScriptHandlerFactoryAppServices" />
  15. <remove name="ScriptResource" />
  16. <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  17. <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  18. <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  19. </handlers>

</system.webServer>

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
小美狐 关注 已关注

最近一次登录:2024-10-26 14:56:07   

暂时还没有签名,请关注我或评论我的文章

@破色
10月20日

对于数据传输和处理,这种配置调整很有效,尤其在升级IIS时。

浮光掠影: @@破色

确实,针对IIS 6升级到IIS 7时,如果配置不当,AJAX请求可能会出错。你提到的调整ajax.dllweb.config配置是一个重要步骤。建议在web.config中增添以下配置以确保AJAX能够正常工作:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="ajax.dll" type="Ajax.HTTPHandler, Ajax" validate="false" />
    </httpHandlers>
  </system.web>
</configuration>

此外,建议查看Microsoft 官方文档以获取更多关于IIS 7的配置建议。这将大大帮助解决AJAX相关问题。

11月08日 回复 举报
仍期待
10月22日

将Ajax配置移至system.webServer下是个好主意,这样在IIS7中可正常运行。

今非昔比: @仍期待

我非常同意你的观点,将 Ajax 配置移至 system.webServer 区块确实能够确保在 IIS 7 中的兼容性。这样做的确是一个明智的选择,因为 IIS 7 的处理方式与 IIS 6 有所不同。

例如,可以在 web.config 中这样配置:

<system.webServer>
    <handlers>
        <add name="Ajax" path="ajax.dll" verb="*" modules="IsapiModule" scriptProcessor="C:\Path\To\ajax.dll" resourceType="Unspecified" />
    </handlers>
</system.webServer>

此外,推荐查看 IIS.net 上的官方文档,深入了解在不同版本 IIS 中处理 Ajax 的最佳实践。这将有助于避免常见的配置错误。

11月13日 回复 举报
恰似惊鸿
10月24日

使用这样的配置方法,更好地管理网络请求的安全性和模块化。例如,<security>标签可以有效控制请求限制。

凄惘: @恰似惊鸿

非常赞同你的看法,使用 <security> 标签确实能够提高网络请求的安全性。建议在配置 web.config 时,可以添加请求限制来防止恶意攻击,比如:

<system.web>
    <httpRuntime maxRequestLength="4096" requestValidationMode="2.0"/>
</system.web>
<system.webServer>
    <security>
        <requestFiltering allowDoubleEscaping="false">
            <requestLimits maxAllowedContentLength="5242880" />
        </requestFiltering>
    </security>
</system.webServer>

此外,可以考虑使用 HTTPS 和 CORS 策略,进一步加强安全性。更多关于安全配置的细节,可以参考 ASP.NET Security Best Practices.

11月12日 回复 举报
大错
11月01日

“runAllManagedModulesForAllRequests”设置很关键,可以确保所有请求都经过适当的模块。

血红: @大错

确实,“runAllManagedModulesForAllRequests”设置在IIS7的配置中至关重要。通过将其设置为true,可以确保所有请求都经过ASP.NET处理,从而避免AJAX请求出错。以下是一个示例配置:

<configuration>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      ...
    </modules>
  </system.webServer>
</configuration>

此外,确保安装了AJAX扩展并正确配置。对于详细的配置指导,可以参考微软的官方文档:IIS 7.0 - Configuring ASP.NET for IIS 7. 这样可以更好地理解影响AJAX请求的各个因素。

11月11日 回复 举报
九命猫
11月10日

通过配置<handlers>, 能有效处理请求路径和请求方式,保证了handlers对不同请求的处理。

月色: @九命猫

确实,合理配置 <handlers> 是确保不同请求能够得到正确处理的关键步骤。对于 AJAX 请求,确保为相应的文件类型配置正确的 handler 会显著提升应用程序的处理效率。例如,如果你的 AJAX 请求是针对 .ashx 文件的,可以在 web.config 中添加如下配置:

<system.webServer>
    <handlers>
        <add name="AjaxHandler" path="*.ashx" verb="*" type="YourNamespace.YourHandler, YourAssembly" resourceType="Unspecified" />
    </handlers>
</system.webServer>

另外,建议参考 Microsoft 的文档,以了解更多关于 IIS 7 的配置细节:IIS 7.0 Documentation

6天前 回复 举报
枫红
11月18日

更新的IIS配置示例展示了如何使用更多更新的安全和处理规范,令人满意。

宠物: @枫红

非常赞同你的观点!确实,采用更新的安全和处理规范可以有效提升应用的稳定性和安全性。对于IIS 6到IIS 7的迁移,确保web.config中的ajax.dll配置正确是关键。可以参考以下的配置示例:

<configuration>
    <system.web>
        <httpHandlers>
            <add verb="*" path="ajax.dll" type="System.Web.UI.Page" validate="false" />
        </httpHandlers>
    </system.web>
</configuration>

此外,建议检查Microsoft的官方文档,了解有关IIS 7的最佳实践:IIS 7 Documentation。通过这些文档,可以获得更多关于配置和优化的指导。

11月12日 回复 举报
浮游云中
11月29日

这种转换能有效利用IIS 7的功能,处理.ajax请求更高效。

古松树: @浮游云中

很高兴看到你提到IIS 7在处理AJAX请求方面的优势。确实,通过使用IIS 7的集成功能,可以大大提高性能和可靠性。例如,可以使用以下 web.config 配置来支持AJAX请求:

<configuration>
  <system.webServer>
    <handlers>
      <add name="AjaxHandler" path="*.ajax" verb="*" type="YourNamespace.YourAjaxHandler, YourAssembly" resourceType="Unspecified" />
    </handlers>
  </system.webServer>
</configuration>

此外,建议参考 IIS.net 获取更多关于IIS 7的指导与最佳实践,这对于提高应用性能非常有帮助。

3天前 回复 举报
落笔
12月02日

移除不必要的处理程序映射可以减少不必要的冲突,提高性能。

眼神调情: @落笔

您提到移除不必要的处理程序映射是一个很好的建议,这确实能够减少潜在的冲突并提升性能。在进行IIS6到IIS 7的升级时,可以尝试以下步骤以优化配置:

<system.webServer>
    <handlers>
        <!-- 移除不必要的处理程序映射 -->
        <remove name="Ajax" />
        <!-- 其他必要的处理程序 -->
        <add name="Ajax" path="ajax.dll" verb="*" modules="IsapiModule" scriptProcessor="C:\path\to\ajax.dll" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
</system.webServer>

可以参考 Microsoft Docs, 深入了解IIS 7的新特性和配置优化技巧。优化处理程序映射不仅有助于提升性能,也能减少维护复杂性。

11月14日 回复 举报
韦一
12月11日

在配置时,务必注意复制过来的PublicKeyTokenVersion是正确的,避免运行时错误。

爱唯久: @韦一

非常赞同您的观点!在进行配置时,确保 PublicKeyTokenVersion 的准确性确实至关重要。小小的错误可能会导致运行时异常,难以调试。可以借鉴以下方法来验证 DLL 的信息:

var assembly = Assembly.Load("YourAssemblyName");
Console.WriteLine($"PublicKeyToken: {BitConverter.ToString(assembly.GetName().GetPublicKeyToken())}");
Console.WriteLine($"Version: {assembly.GetName().Version}");

此外,建议参考 Microsoft Docs 了解 IIS 7 的新特性和配置细节,这将有助于确保您正确设置相关项。

11月14日 回复 举报
清秋节
12月15日

配置的文本是个好例子,帮助理解我需要如何在新环境中应用旧的配置。

看你: @清秋节

很高兴看到你的反馈!确实,在从IIS6迁移到IIS7时,正确配置web.config文件对于确保AJAX功能正常至关重要。可以参考以下简单的web.config示例,帮助你正确配置ajax.dll

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="ajax.dll" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
    </httpHandlers>
  </system.web>
</configuration>

确保在IIS7中启用适当的模块和处理程序。如果需要更深入的了解,推荐访问Microsoft的IIS7文档以获取更多信息。希望这些信息能帮到你!

4天前 回复 举报
×
免费图表工具,画流程图、架构图