IIRF重寫在asp.net4.0+IIS6中部分失敗的解決方案

最近公司裏一個項目,使用的是 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日誌

相關文章
相關標籤/搜索