我对IIS 7.0的URL重写有一个大问题。重写路径和IIS集成模式
我写了一个简单的模块来重写我的NET3.5/IIS7 Web应用程序。这是代码的一部分。
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
if (app.Request.Path.Contains("pagetorewrite.aspx"))
HttpContext.Current.RewritePath("~/otherpage.aspx");
}
而且注册我的模块中的web.config:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="MyModule" type="MyModule" preCondition="" />
在使用传统的ASP管道它的作品完美的,但是当我改变管道模式到综合,然后停止IIS 7.0(Vista的)加工。调试器/事件/日志文件中没有例外,错误和任何内容 - 只有浏览器中没有找到页面的消息。最棘手的情况是页面名称看起来像是从原始页面的部分和rewrte到页面拼写错误或合并。
我已经在另一台计算机上部署了我的代码(也是vista-x64-和iis 7.0),并且它在两种模式下都很完美。 它看起来有一个配置问题或什么?