首页新闻找找看学习计划

IIS7.5下 httpModules 使用出现:404 求解决

0
悬赏园豆:100 [已解决问题] 解决于 2012-07-11 15:19

web.config配置

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
    <httpModules>
      <add name="TModule" type="The5Lib.TestModule,The5Lib"/>
    </httpModules>
  </system.web>
</configuration>

httpModule内容:

public class TestModule : IHttpModule
    {
        public void Dispose()
        {

        }

        public void Init(HttpApplication context)
        {

            context.BeginRequest += new EventHandler(context_EndRequest);

        }

        void context_EndRequest(object sender, EventArgs e)
        {

            HttpApplication context = (HttpApplication)sender;
            context.Response.Redirect("http://www.Test.cn" + context.Request.Path); 

        }

    }

 

出现问题:

如果目录下存在一个文件比如:default.aspx

那么访问:www.a.com/default.aspx时可以正常跳至:www.test.cn/default.aspx

如果不存在,则不能跳转,如www.a.com/a/b IIS6下可以正常转至:www.test.cn/a/b

但IIS7+出现404

求各位大侠帮帮看

网络农民的主页 网络农民 | 初学一级 | 园豆:63
提问于:2012-07-11 12:14
< >
分享
最佳答案
1

在web.config中加上如下配置:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
收获园豆:100
dudu | 高人七级 |园豆:38722 | 2012-07-11 13:08

验证:、、、不行还是404

网络农民 | 园豆:63 (初学一级) | 2012-07-11 14:03

@网络农民: 那可能是应用程序池被你设为了传统模式,如果是这样,改为集成模式

dudu | 园豆:38722 (高人七级) | 2012-07-11 14:11

@dudu: 

改成集成模式后出现:

HTTP 错误 500.22 - Internal Server Error

检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

网络农民 | 园豆:63 (初学一级) | 2012-07-11 15:11

@网络农民: 

在集成模式下,HttpModule要放在<system.webServer>中:

<system.webServer>
<modules>
    <add path="*.html" verb="*" name="TModule" type="The5Lib.TestModule,The5Lib"/>
</modules>
</system.webServer>
dudu | 园豆:38722 (高人七级) | 2012-07-11 15:15

@dudu: 

搞定了,谢谢

把<add name="TModule" type="The5Lib.TestModule,The5Lib"/> 也放到webServer节点里,

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
      

  </system.web>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" >
             <add name="TModule" type="The5Lib.TestModule,The5Lib"/>
        </modules>
        
    </system.webServer>
</configuration>

这样就可以,非常感谢

网络农民 | 园豆:63 (初学一级) | 2012-07-11 15:18

@网络农民: 我也遇到问题,按楼上解决。感谢

风乱发 | 园豆:205 (菜鸟二级) | 2015-10-23 14:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册