2013-03-02 92 views
0

我知道這個問題已經被問了很多次,並且也被大量的回覆,但是我遇到了一些非常奇怪的情況,就像昨天我的代碼在生產服務器和開發機器上工作一樣,但是當我試圖今天運行我的網站,它在我的404上笑我使用ASP.NET 4在IIS 6上進行URL路由/ URL重寫? (沒有IIS訪問)

我被困在路由/重新編寫SEO友好的URL到我的網站的原始網頁,無法改變任何在IIS。 首先,我嘗試使用UrlRewriter.NET,它在我的開發計算機(Windows Server 2008,IIS 7)上工作,但沒有在登臺服務器(Windows Server 2003 R2,IIS 6)上工作,因爲它拋出了404錯誤。然後,我嘗試使用UrlRewriting.NET,這也是我記得的。

編輯:當我試圖用他們我的Visual Studio ASP.NET開發服務器上工作的UrlReWriting.NET但不是在IIS

然後我的一個同事和一點搜索說服我使用URL路由,而不是URL重寫,所以我就到ASP.NET URL路由裏面的Global.asax

protected void Application_Start(object sender, EventArgs e) 
    { 
     RegisterRoutes(RouteTable.Routes); 
    } 

    void RegisterRoutes(RouteCollection routes) 
    { 
     routes.MapPageRoute("GalleryCategory", "Gallery/", "~/Gallery.aspx"); 
     routes.MapPageRoute("Gallery", "Gallery/{*image}", "~/Gallery.aspx"); 
    } 

下面的代碼是的,我也嘗試下面在web.config中,但沒有使用的解決方案

<modules runAllManagedModulesForAllRequests="true"> 
     <remove name="UrlRoutingModule"/> 
     <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </modules> 

但他們也讓我無所適從所有那些404s。

PS。我的網站上只有一個頁面需要SEO友好的URL,頁面名稱是Gallery.aspx,PathInfo/QueryString參數是動態的。

重要提示:我的生產服務器是Windows Server 2003與IIS 6和我的機器在Windows Server 2008 IIS 7

回答

0

使用全局文件此路由代碼,應用程序啓動,該參數: 如WWW .domain.com /畫廊/ imgFile1/

void Application_Start(object sender, EventArgs e) 
{ 
    Routes.MapPageRoute("GalleryFile", "Gallery/{CatID}", "~/Gallery.aspx"); 
} 

爲重寫庫類別頁面,把這段代碼Web.Config中:

<system.web> 
<urlMappings enabled="true"> 
<add url="~/Gallery/" mappedUrl="~/Gallery.aspx" /> 
</urlMappings> 
</system.web> 
+0

nope不工作,仍然扔404: – 2013-03-03 09:24:09

0

好吧,聽起來很瘋狂,但在所有這些搜索和拉我的頭髮字面上我給了它一槍,我確實重置我的生產IIS運行近30個網站(我不願意嘗試任何瘋狂的事情,包括IIS重置,但後所有事實證明,只是重置IIS的伎倆使用命令iisreset