none
使用iis6中的通配符映射程序会与.net的httpModules冲突,使httpModules的URL地址映射(重写)失效?请问如何解决? RRS feed

  • 问题

  • 我编写一个iis6中的通配符映射程序并安装后发现原先正常使用的Intelligencia.UrlRewriter地址映射失效了,放到iis7中测试了一下,发现把

    web.config

    中的

      <system.web>
      <httpModules>  
        <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" />  
      </httpModules>

    </system.web>

     

    改为

        <system.webServer>
            <modules>
                <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" preCondition="managedHandler" />
            </modules>
            <validation validateIntegratedModeConfiguration="false" />
        </system.webServer>

     

    即可正常在iis7中使用

     

    但iis6中无法正常使用?

    请问有没有解决办法?

    2011年3月3日 7:19

答案

  • 你好,

    你是否可以详细的描述一下你的通配符映射程序在IIS6中的配置情况?

    在IIS7中你通过定义preConditon="managedHandler", 发送到ASP.NET应用程序或者是映射到Managed处理程序的请求都会调用UrlRewriter这个模块。而在IIS6中,只有ASP.NET应用程序的请求才会使用到这个模块。通配符映射程序的安装,可能导致请求无法进入ASP.NET应用程序处理管道。如果是这样的话,你需要把ASP.NET应用程序映射和你自己的通配符程序映射隔离开来(比如说配置到不同的应用程序节点上)。

    谢谢!


    Leo Tang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    • 已标记为答案 紫柔 2011年3月10日 10:32
    2011年3月7日 8:46
    版主

全部回复

  • 你好,

    你是否可以详细的描述一下你的通配符映射程序在IIS6中的配置情况?

    在IIS7中你通过定义preConditon="managedHandler", 发送到ASP.NET应用程序或者是映射到Managed处理程序的请求都会调用UrlRewriter这个模块。而在IIS6中,只有ASP.NET应用程序的请求才会使用到这个模块。通配符映射程序的安装,可能导致请求无法进入ASP.NET应用程序处理管道。如果是这样的话,你需要把ASP.NET应用程序映射和你自己的通配符程序映射隔离开来(比如说配置到不同的应用程序节点上)。

    谢谢!


    Leo Tang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    • 已标记为答案 紫柔 2011年3月10日 10:32
    2011年3月7日 8:46
    版主
  • 尝试IIS7中设置网站运行模式为经典模式,这样就可以与IIS6兼容了
    Asp.net源码专业站|-51Aspx.com
    2011年3月10日 2:35
  • 我在做的网站不知道为什么会出现这个问题,不过不是一直都有这个问题的,有时刷新一下又可以访问了,我觉得是URL重写的问题,麻烦高手指点
    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------
    
    配置错误 
    说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 
    
    分析器错误消息: 创建 RewriterConfig 的配置节处理程序时出错: 未能找到文件“C:\WINDOWS\TEMP\w1ebi3-a.dll”。
    
    源错误: 
    
    
    行 23:   <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /><!--URL重写-->
    行 24: </configSections>
    行 25:  <RewriterConfig>
    行 26:   <!--URL重写-->
    行 27:   <Rules>
     
    
    源文件: E:\home\LocalUser\479909\www\guangyuan\web.config  行: 25 
    
    
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET Framework 版本:2.0.50727.3615; ASP.NET 版本:2.0.50727.3618
    2011年3月29日 3:04