zoukankan      html  css  js  c++  java
  • ASP.NET程序从IIS6移植到IIS7时出现500.22错误(转)

    最可能的原因: 
    •    此应用程序在 system.web/httpModules 节中定义配置。 
    可尝试的操作: 
    •    将配置迁移到 system.webServer
    /modules 节。也可以手动这样做,或通过在命令行中使用 AppCmd 来这样做 - 例如,%SystemRoot%system32inetsrvappcmd migrate config "Default Web Site/"。使用 AppCmd 迁移应用程序将使它能够在集成模式下工作,并能继续在经典模式下和以前版本的 IIS 上工作。 
    •    如果您确信可以忽略此错误,则可以通过将 system.webServer
    /validation@validateIntegratedModeConfiguration 设置为 false 来禁用它。 
    •    也可以将应用程序切换到经典模式应用程序池 
    - 例如,%SystemRoot%system32inetsrvappcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool"。只有在无法迁移应用程序时才这样做。 
    (将“Default Web Site”和“Classic .NET AppPool”设置为您的应用程序路径及应用程序池名称) 
    链接和更多信息集成模式是在 IIS 
    7.0 上运行 ASP.NET 应用程序的首选模式

    { IIS 的应用程序池根据托管管道模式分了两种类型:集成和经典两种

    集成 .NET 模式下,应用程序不应在 <system.web>/<httpModules> 配置节中指定 ASP.NET 模块组件,而应使用 <system.webServer>/<modules> 配置节来加载 ASP.NET 模块组件。

    .NET 模式 则是我们以前习惯的IIS 6 的方式,没有上述限制。}

    解决方法:

    方法1:在IIS7上配置应用程序池.

    将程序池的模式改为“经典”之后,一切正常。

    (具体方法:开IIS,右边操作里选基本设置,应用程序池旁边点选择,选为Classic .net AppPool,就将管理模式切换为了经典模式就OK了)

    方法2:在IIS7添加我们的模块(modules)

    参考:http://aabs.wordpress.com/2007/11/16/ihttpmodule-not-running-after-conversion-to-iis-7-and-net-35/

    方法3:修改web.config

    再细了解:

    IIS7的Application Pools有两种mode,一种是Integrated,一种是classic。如果使用Integrated模式,那么对自定义的httpModules和httpHandlers就要修改配置文件了,需要将他们转移到<modules>和<hanlders>节里去。

    IIS7的两种模式和IIS6有什么区别?

    IIS7.0 Integrated mode:asp.net的modules和handlers从<system.webServer>下的<modules>和<handlers>里读取,以前的<system.web>下的<httpModules>和<httpHandlers>配置节会被忽略,如果设置禁止验证(disabled validation),是不会产生错误的。

    IIS7.0 Classic mode:与以上情况是相反的,<modules>和<handlers>会被忽略。

    IIS6.0 :这个大家都不陌生了。

    如果做一个可以在IIS6和IIS7的两种mode下都可以运行的配置?validateIntegratedModeConfiguration=“false”是做什么用的?有需要的朋友可以在这里查看详情。

    其次,从iis6迁移到iis7上后,有些url rewrite功能可能就不好用了,下面这篇文章讲述了一个hack方法,有效的控制了staticFile handler的职责,实现了像iis6那样的工作方式。

     示例代码:

    <system.web>
       <!-- Modules for IIS 6.0 and IIS 7.0 Classic mode -->  
      <httpModules>          
        <add name="MagicAjaxModule" type="MagicAjax.MagicAjaxModule, MagicAjax"/>    
      </httpModules>
       <!-- Handlers for IIS 6.0 and IIS 7.0 Classic mode -->   

        <httpHandlers>

          <addpath="*.myh"verb="GET"type="MyApp.MyHandler" />

        </httpHandlers

    </system.web>
    <system.webServer>
      <!-- Modules for IIS 7.0 Integrated mode -->    
      <modules>        
        <add name="MagicAjaxModule" type="MagicAjax.MagicAjaxModule, MagicAjax"/>    
      </modules>
      <!-- Handlers for IIS 7.0 Integrated mode -->   

       <handlers>

          <addname="MyHandler"path="*.myh"verb="GET"type="MyApp.MyHandler"preCondition="integratedMode" />      

        </handlers>

       <!-- Disable detection of IIS 6.0 / Classic mode ASP.NET configuration -->      
       <validation validateIntegratedModeConfiguration="false" />
     </system.webServer>
  • 相关阅读:
    Android中Context具体解释 ---- 你所不知道的Context
    JDK6、Oracle11g、Weblogic10 For Linux64Bit安装部署说明
    matplotlib 可视化 —— 定制 matplotlib
    matplotlib 可视化 —— 移动坐标轴(中心位置)
    matplotlib 可视化 —— 移动坐标轴(中心位置)
    matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
    matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
    指数函数的研究
    指数函数的研究
    指数分布的研究
  • 原文地址:https://www.cnblogs.com/conghuip/p/3722955.html
Copyright © 2011-2022 走看看