我對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),並且它在兩種模式下都很完美。 它看起來有一個配置問題或什麼?