[IIS 7.5/Win2008 R2] 部署ASP.net Web Site問題集合

[IIS 7.5/Win2008 R2] 部署Web Site問題集合

HTTP 錯誤 500.23 - Internal Server Error
偵測出 ASP.NET 設定沒有套用到整合式 Managed 管線模式.

引用恆逸許薰尹老師所講:

Integrated整合式Managed管線模式提供以下好處:

1.能夠處理所有類型的Request(原生或Managed模組),如靜態檔案、CGI

2.減少在IIS與ASP.net重複執行的動作,如驗證、URL授權

3.集中管理設定

4.易於使用ASP.net Managed模組來擴充IIS

所以Integrated整合式應該比Classic傳統 Managed管線模式好處多,結果網路上反而很多解決方式都是把管線模式改回Classic(上圖的第三種解決方式)

後來上MSDN論壇發問

真正的解決方式:

1.在命令提示字元中輸入 cd %windir%\system32\inetsrv,然後按 ENTER。

2.輸入%SystemRoot%\system32\inetsrv\appcmd migrate config "IIS裡的網站名稱/"

(沒有圖形介面可以調,須下指令)

※2018.7.8追記,圖片裡說明的第二種解決方式

在Web.config的system.webServer區段寫下

<configuration> 
<system.webServer>
	<!--可以使用整合式管線模式了~-->
    <validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>

 
  
     
 

補充:

Windows Server 技術中心 - Appcmd.exe (IIS 7)的用法

 

 

 

 

HTTP 錯誤 404.2 -Not Found
因為網頁伺服器上的 [ISAPI 及 CGI 限制] 清單設定,而無法提供您要求的網頁。

解決方式:

解法來源:Microsoft 技術支援 - 當您嘗試造訪裝載的網頁執行 IIS 7.0 的電腦上時,出現錯誤訊息: 「 HTTP 錯誤 404.2 – 找不到 」

 

2011.8.5 追記

HTTP 錯誤 500.19 - Internal Server Error

原因:IIS和.net framework安裝順序相反,正確安裝順序,要先啟動IIS再灌.net framework

此錯誤解決方式,請參考91網友文章:HTTP 錯誤 500.19 - Internal Server Error

 

 

 

HTTP 錯誤404.17 – Not Found

要求的內容似乎是指令碼,因此靜態檔案處理常式便不會對它進行處理。

HTTP 錯誤500.21 – Internal Server Error

處理常式 “PageHandlerFactory-Integrated” 的模組清單中有錯誤的模組 “ManagedPipelineHandler”

以上兩個情況是在IIS和.net framework安裝順序相反下,部署者又自行新增一些IIS設定所導致

解決辦法:HTTP 錯誤 500.19 - Internal Server Error

=============================================================================================================

2011.8.21 追加

IIS6:HTTP 401.1 - 未經授權:因認證無效而存取遭到拒絕 

 

2011.10.13 追加

IIS7.5的站台和該底下的應用程式虛擬目錄若執行的應用程式集區.net版本不一樣,會造成其中一個錯誤

無法對應路徑
image

 

解決辦法:站台、應用程式虛擬目錄的應用程式集區.net版本都改成一樣即可

 

※ 2012.01.12  MSDN討論:IIS超過人數上限時,顯示自訂錯誤訊息,不要顯示 Service Unavailable (沒辦法)

2012.3.11 追記

IIS7.5
HTTP 錯誤 500.19 - Internal Server Error
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。
設定錯誤 無法讀取設定檔案,因為權限不足

解決辦法:http://tw.myblog.yahoo.com/hummus-hummus/article?mid=611&prev=613&next=609

 

2012.3.15 追記

如果為應用程式新增預設文件發生以下錯誤:
執行此作業時發生錯誤。
詳細資料:
檔案名稱:xxxxx\web.config
行號:xx
錯誤:在唯一金錀屬性'value'設為'xxxx'的情況下,無法新增類型'add'的重複集合項目

因為該應用程式的預設文件設定和父層的網站重覆,解決辦法:

打開Web應用程式的Web.config檔,移除和網站重覆的設定(紅框處)

或者從IIS打開父層網站的預設文件,移除父層網站重覆的設定

 

MSDN討論:

加入的.dll,有些在部署時要記得也要修改Web.config

ASP4.0+IIS7(server 2008)引用DLL產生的問題 

2012.4.22

疑似安裝的IIS功能沒有裝齊所造成的問題:換一台主機,突然網站無法套用佈景主題

2012.5/1 追記開發WCF所造成的錯誤:

'/MySilverlightApplication1.Web' 應用程式中發生伺服器錯誤。


服務不支援 ASP.NET 相容性,因此無法啟動服務。此應用程式已啟用 ASP.NET 相容性。請關閉 web.config 中的 ASP.NET 相容性模式,或將 AspNetCompatibilityRequirements 屬性新增至服務型別,並將 RequirementsMode 設定設為 'Allowed' 或 'Required'。

 

解決辦法:WCF 服務與 ASP.NET

把WCF的類別加上

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

且網站的Web.config裡把

<serviceHostingEnvironment aspNetCompatibilityEnabled="false"
      multipleSiteBindingsEnabled="true" />

改為

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" />

 

2012.8.2 追記\

已超出傳入訊息 (65536) 的訊息大小配額上限。若要增加此配額,請利用適當繫結項目上的 MaxReceivedMessageSize 屬性。

解決辦法參考:http://msdn.microsoft.com/zh-tw/library/system.servicemodel.basichttpbinding.maxreceivedmessagesize.aspx

http://blog.csdn.net/faunjoe/article/details/4636074

把Web.config裡maxReceivedMessageSize設大一點(要和maxBufferSize一樣)

 

2012.9.13追記

在WCF中使用Session、HttpContext.Current的方式:

http://www.cnblogs.com/Flyear/archive/2010/01/07/1641199.html

 

2012.10.31追記

前端Silverlight加入服務參考後無法產生程式碼

(自訂工具錯誤: 無法為服務參考 xxxx 產生程式碼,如需詳細資訊,請檢查其他錯誤與警告訊息。)

image

而且Reference.cs文件都是空的

解決辦法:

Silverlight - failed to generate code for the service reference