最近公司裏一個項目,使用的是 asp.net4.0、iis6 、iirf重寫html
之前iis7 和本地搭建都沒有問題 ,到服務器上就一直404web
看了日誌發現後綴總會跟着「/eurl.axd/GUID」這麼一串。api
緣由以下:服務器
ASP.NET 4.0在安裝的時候,會在IIS6註冊一個ISAPI Filter,叫作」aspnet_filter.dll」,ISAPI Filter會先於ISAPI處理程序前執行,它會在全部的的無後綴的URL後面加一串字符「/eurl.axd/GUID」, 同時ASP.NET 4.0還會在IIS默認添加一個請求映射規則「*.axd」,映射到aspnet_isapi.dll。此時,全部的無後綴URL加上「/eurl.axd/GUID」後都會變成帶.axd後綴,這樣就匹配*.axd的映射規則進行ASP.NET的處理通道。在進入ASP.NET通道後,ASP.NET處理程序會刪除掉「/eurl.axd/GUID」,讓它還原到無後綴的原始狀況,而且不會對後續的請求處理帶來任何影響。此時,全部的無後綴請求,就進入了ASP.NET的處理通道中,在默認狀況下,ASP.NET4.0的全局的web.config中配置了DefaultHttpHandler來接收無後綴的URL請求,可是咱們也能夠隨意更換默認處理程序(好比ASP.NET MVC處理程序)來處理無後綴的URL請求。asp.net
解決方法:移除aspnet_filter.dll 如當前站點沒有加asp.net4.0的isapi 就網站根節點的屬性去除aspnet_filter.dll 而後iisreset 。問題解決。網站
http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#0.1__Toc256770153url
借用說明:.net
http://www.cnblogs.com/hyl8218/archive/2011/05/26/2058007.html日誌