2008-11-21 101 views
1

我对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),并且它在两种模式下都很完美。 它看起来有一个配置问题或什么?

回答

0

只是一个猜测:资格与程序集的名称(类型=“MyModule的,MyAssembly程序”)的类型