2011-02-07 102 views
2

下面的代碼片段工作正常,當我在調試模式下運行,但拋出一個404,當我運行它通過IIS(7.5)Gloabl.asax Context.RewritePath IIS 7.5

有一個web.config設置我需要爲IIS添加?

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     string currentUrl = Request.Url.ToString(); 
     List<string> pages = new List<string>(); 
     pages.Add("/about-us.html"); 
     pages.Add("/services"); 

     foreach (string page in pages) 
     { 
      if (currentUrl.Contains(page)) 
      { 
       Context.RewritePath(string.Format("/page.aspx?page={0}", page)); 
      } 
     } 
    } 
+0

你試圖自己做這個的任何原因,而不是使用內置的支持IIS 7.5或類似Managed Fusion Url Rewriter http://urlrewriter.codeplex.com/? – 2011-02-08 17:18:24

回答

3

您需要在Web.config中添加<modules runAllManagedModulesForAllRequests="true"><system.WebServer>

+0

謝謝,效果很好。對於簡單的網站,我認爲Context.RewritePath概念是可以的,你什麼時候會推薦system.web.routing這個方法? – Neil 2011-02-07 19:08:20