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
求各位大侠帮帮看
在web.config中加上如下配置:
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> </system.webServer>
验证:、、、不行还是404
@网络农民: 那可能是应用程序池被你设为了传统模式,如果是这样,改为集成模式
@dudu:
改成集成模式后出现:
HTTP 错误 500.22 - Internal Server Error
检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
@网络农民:
在集成模式下,HttpModule要放在<system.webServer>中:
<system.webServer> <modules> <add path="*.html" verb="*" name="TModule" type="The5Lib.TestModule,The5Lib"/> </modules> </system.webServer>
@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>
这样就可以,非常感谢
@网络农民: 我也遇到问题,按楼上解决。感谢