1. 程式人生 > >iis5.1/6.0/7.0+ 配置url重寫 無副檔名偽靜態

iis5.1/6.0/7.0+ 配置url重寫 無副檔名偽靜態

最近在搞url重寫 遇到iis 無副檔名及html對映問題 供後人檢視

因為考慮功能比較多(URLRewriter元件有些功能滿足不了要求)所以就用了HttpModule方法重寫。

iis5.1

新增應用程式對映 .* (注意 這種方法只有5.1中可以)到 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 確定檔案是否存在去掉 即可

iis6.0

搜了大量文章 都不可以 ,終於看到一篇文章 在萬用字元應用程式對映插入isapi.dll檔案對映 如圖:

重新啟動iis 目錄對映就起作用了(據說很耗伺服器資源)

 iis7.0+

下面來說 iis7.0+以上的 版本 這個比較繁瑣 但是很簡單 不像 iis6.0我找了很久才找到方法

1) 首先新建一個應用程式池,名稱任意,比如:Myweb,託管管道模式先暫時設定為整合模式;

 

2) 部署好站點,並將此站點的應用程式池設定為Myweb;

 

3) 選中站點,切換到功能試圖,找到 "伺服器元件"-> "處理程式對映",雙擊之後,在開啟視窗右側的操作欄目下做如下設定:

4)"新增指令碼對映":請求路徑 .html ,可執行檔案選擇 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ,名稱隨意;

 

 
5)"新增萬用字元指令碼對映":請求路徑 * ,可執行檔案為:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名稱隨意;

 

 
6)"新增託管處理程式":請求路徑*,可執行檔案:System.Web.UI.PageHandlerFactory,名稱隨意;

 

7) 開啟站點切換到功能試圖,找到 "伺服器元件"->"模組",雙擊之後,在開啟視窗右側的操作欄目中,點選"新增託管模組",型別

設定自己的HttpModel 模組,並且把"僅針對向asp.net 應用程式或託管處理程式發出請求呼叫" 選中;

 

8)最後,找到我們第一步建立的應用程式池Myweb,將託管管道模式設定為經典模式。

重新啟動 網站  檢視

 

原文:http://www.cnblogs.com/diose/archive/2013/02/21/2920324.html


重啟之後如出現以下問題:

解決方案:IIS的應用程式池許可權不夠,應用程式給localsystem賬號許可權即可。

以客戶的伺服器系統2003sp2為例,修改步驟如下: 控制面板---管理工具--Internet 資訊服務(IIS)管理器--應用程式池---Myweb--設定---標識---修改為:本地系統---應用---確定-電腦重啟


參考:http://www.cnblogs.com/sunxi/p/3356719.html