IIS 7.5版本中一些詭異問題的解決方案


前言

我想任何一個基於.NET的宮城師都會同意微軟的產品,特別是這個IIS,常常在你很恨意外的時候拋出異常來,比如在你的主要產品要升級的時候。然后你會花好多時間去找啊找,找到天荒地老。悲催!~。

此篇文章的目標主要是為了IIS 7.5 在一些情況下的解決方案。希望這些對你們有幫助。

一。 IIS 有關WCF 宿主(hosting)問題

問題描述:

如果第一次在IIS 7.5部署WCF 服務文件---.svc的時候,你很有可能會遇到下面的問題:

404 – Not Found - The page you are requesting cannot be served because of the extension of the configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

解決方案:

404,很熟悉吧。就是沒找到文件。

其實,這問題很簡單,發生錯誤的主要原因是HTTP Handler默認配置中的虛擬目錄並沒有映射(mapping)到以.svc為后綴的文件名。svc我們都知道在WCF機制中的重要性。既然目錄都找不到,當然就會報錯的哦!~。

步驟:

第一步:打開命令提示框。也就是cmd。

第二步:在黑屏窗口中,通過cd 導航到一下目錄:

C:\Windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation

第三步:然后輸入:

ServiceModelReg –i

如圖

這樣就OK了。

二。在IIS中,無法找到Window Authentication(Window 驗證)

我們都知道,在IIS 7.0中,默認情況下有以下3中驗證方式:

Anonymous(匿名,默認情況下打開)

Impersonation( 模擬身份,默認情況關閉)

Forms(默契情況下關閉)

如圖:

 可能有些童鞋會覺得,不對啊,好像上面還缺少一種。對,缺少的就是“Windows Authentication”這個驗證方式。那么,有些人就會問,是沒有了呢?還是被路人甲給隱藏了呢?

呵呵,其實是隱藏的!~~微軟這孩子已經把它不作為默認出現了。如果你真的需要這種驗證方式,那么可以如下這么做:

打開控制面板(Control Panel),然后找到“Programs and Features”,在點擊“Turn Windows Features on/off “,如下:

然后。。。

勾選上就可以了~~~~

三。Login failed for user 'IIS APPPOOL\Classic .NET

這種情況主要發生在運用Windows Credentials 訪問數據庫時。宿主服務器(Host Server) 有sql 2008數據庫以及有HTTP 請求經過路由(routed)。

基於這種情況的主要是因為改變這個Classic .NET Application的進程屬性標識,所以如果碰到這個情況,那么你需要把你的虛擬目錄映射(mapped)Classic .NET Application中就可以了。

過程如下:

 第一步:打開你的IIS 管理器(我很喜歡直接在“開始”→“運行”里敲入  inetmgr,然后打開,覺得很酷!~嘻嘻。)

 第二步:在IIS 管理器里,選擇“Application Pools(應用程序池)”,在右邊的列表里,選擇“Class .NET AppPools”

第三步:打開它的“Advanced Setting(高級設置)”。把Process Model下面的Identity屬性改為LocalSystem,如下圖:

四。HTTP Error 500.23 - Internal Server Error

為什么會發生這樣的錯誤呢?這個很大程度上是因為和托管的管道模式(Managed Pipeline Mode)設置有關系.

這個主要有2個解決方案:

第一個:改變你虛擬目錄映射的Application Pool(應用程序池)的Managed Pipeline 模式。默認情況下,你虛擬目錄將映射到DefaultAppPool下的Integrated Managed Pipeline模式。OK,我們需要把它從Integrated 到Classic模式就行了。

 方法2:為你的虛擬目錄創建一個新的Application

在你的網頁目錄下,右鍵,添加一個“Application”,如下:

在Aplication Pool下面選擇Classic.NetAppPool就可以了。。。

 

后記

好吧,這篇文章不是我原創的,我只是在把它用比較通俗的話翻譯成了中文,如果E文好的童鞋,可以直接看連接。

原文地址:The Curious Case of Internet Information Services


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM