IIS7中默認是已經加載了腳本映射處理。但今天裝了個WIN7,裝好IIS后卻發現沒有。于是手動去這安裝,在添加html映射時提示:模塊列表中必須要有IsapiModule或cgiModule
因為 IIS 7 采用了更安全的 web.config 管理機制,默認情況下會鎖住配置項不允許更改。運行命令行 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。
其中的 handlers 是錯誤信息中紅字顯示的節點名稱。
如果modules也被鎖定,可以運行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
?
注意:cmd.exe要以管理員身份啟動,在c:\windows\system32下找到cmd.exe,右鍵管理員啟動,輸入上面的命令即可。
?
Google了半天找不到原因。后來在找到了答案。方法很簡單,在 控制面板 -> 程序和功能 -> 打開或關閉Windows功能(這幾步可以簡化為Win+R運行OptionalFeatures) -> Internet信息服務 -> 萬維網服務 -> 應用程序開發功能,把下面的全部勾上!重啟,成功!
?
問題二:由于 Web 服務器上的“ISAPI 和 CGI 限制”列表設置,無法提供您請求的頁面。
IIS的根節點(第一節點 )->右側“ISAPI和CGI限制”->把禁止的DotNet版本項設置為允許,即可.
?
?
Web.Config 在iis7下必須加以下一段:
==========================================
???????
???????????
???????
???????
???????????
???????????
???????
???
?
?
HTTP 錯誤 404.0 - Not Found
您要找的資源已被刪除、已更名或暫時不可用。
?
Asp.net配置偽靜態規則
?
第一步:?從如下任一地址中下載URLRewriter組件:
下載地址1:http://download.csdn.net/source/524514
?
同一個項目, 又建另一站點(相同的物理路徑,) ,結果出下上圖404.0錯誤, 原來是vista下應用程序池默認的32應用程序屬性影響,參考下圖,設置為True
下載地址2:http://www.nmju.net/UserFiles/URLRewriter.rar
下載地址3:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
第二步:在網站項目中添加URLRewriter程序集的引用。
第三步:配置webconfig文件:
1、在與節點首部加入如下:
?
2、在與之間加入:
?
?
3、在與之間加入
?
4、配置偽靜態的語法:在與之間加入節點。在與之間加入偽靜態規則:
?
??????
?????
??????? ~/xxxx/view(.[/d]*)/.html
??????? ~/xxxx/view.aspx?id=$1
?????
??
??
?????
??????? ~/yyyy/(.[/d]*)/view.html
??????? ~/yyyy/view.aspx?id=$1
?????
?
?
?第四部:配置IIS7.5?或IIS7.0
???1、新建一個應用程序池:名稱:任意如:webapp;選擇net FrameWork版本(如果你的網站時候2.0的話就選擇2.0,我的是4.0)在此我選擇Net FramWork v 4.030319.?托管管道模式先暫時設置為集成模式。等下面的設置完成之后再將托管管道模式設置為經典模式。如果下面的設置完成之后不把應用程序設置為經典模式的話,偽靜態的功能可以實現,但是頁面的樣式圖片不能正常顯示這是設置的關鍵。
???2、新建一個網站?website?,將此站點的應用程序程序池設置為webapp。
?? 3、選中你的站點比如website ,并且切換到功能視圖。雙擊【處理程序映射】在打開窗口右側的操作欄目下做如下操作。
????? 3.1、【添加腳本映射】-路徑為:*.html.可執行文件為:C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_isapi.dll?注意:如果你的網站是2.0。可執行文件為:C:/Windows/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll?。名稱:任意,比如:html.
????? 3.2、【添加通配符腳本映射】 請求路徑為*。可執行文件和3.1的一模一樣,名稱任意,比如:All.
????? 3.3、【托管處理程序映射】(路徑:*??可執行文件:System.Web.UI.PageHandlerFactory?名稱 任意 比如Html-Integrate)
????? 3.4、雙擊website站點切換到站點功能視圖。然后雙擊模塊,打開窗口之后在右側的操作欄目下面,單擊【添加托管模塊】-》名稱:任意 如All??類型:URLRewriter.ModuleRewriter?并且 把【僅針對向asp.net?應用程序或托管處理程序發出請求調用】前面的選項勾上。(記住一定要勾上)。
????? 3.5、最后一步:雙擊iis7.0或7.5的應用程序池。在應用程序池列表中找到【webapp】應用程序池。雙擊打開之后。將webapp應用程序池的【托管管道模式】設置為經典模式。
值得注意的是第三部中的2,3點可以根據程序設計的需要選其一,在某些不確定的情況下,可能使程序出現異常。
當然在配置iis7.0和iis7.5時還有更簡單的方法。將微軟官方的url包安裝到服務器上,在服務器上導入配置規則文件,
MaxMatchCount 10
RewriteRule ^news/([0-9]+)/.html$ news/xx.aspx?id=$1 #注釋
。。。。。
。。。。
NotParsed? foo bar
文件名后綴為.htaccess,將網站暫停,點擊UrlWriter,導入規則應用即可,當然在開發過程當中,為了便于測試,最好是將兩種方法結合使用,再在web.config中將相關的urlwriter重寫配置項注釋或刪除即可!
?
1、由于先安裝了。netframework 后安裝的IIS,就會出現4.0的相關處理程序沒有被注冊到IIS服務器軟件中,
解決辦法:在開始菜單中找到CMD , CD\命令到 aspnet_regiis.exe 的物理路徑,在里面輸入 aspnet_regiis -i?手動注冊解決
?
aspnet_regiis.exe 的物理路徑在:(有32位系統和64位系統之分)
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe
?