WCF部署糾錯


說明

這是“又”是一篇需要長期跟進的帖子。將WCF初次部署到IIS上總是會出現很多讓人抓狂的錯誤。雖然已經吃了很多這樣的虧,而且每次都很“深刻”。但是鮮有“完整和豐富”的解決方案。這大抵是因為,這屬於環境配置,一旦環境配置完成,就不會再出現——直到碰到一個新的環境。所以,這類的經驗積累起來不是很快速,環境又不易重現。零散的Tip又極難成文...總的來說,因為種種原因,WCF的部署就是這么頭痛。所以,我覺得為自己寫一個跟進貼,慢慢維護。

解決方案來自網上各網友的博客,但是由於時間的推移,這里無法一一引用。特此說明。

錯誤提示以及解決方式

添加功能

添加功能是指在windows上安裝功能:
Windows系統使用【控制面板-程序和功能-左側的啟用或關閉windows功能】。
Windows Server系統使用【服務器管理-添加角色和功能-在向導中導航到功能】。

一般處理方式

如果問題沒有得到解決,重啟IIS是一個可嘗試的操作。由於說明“需不需要重啟IIS”是一件很蛋疼的事情,所以這里作為備用處理方式進行聲明。

路徑

由於操作系統的路徑不同,解決方式中使用的路徑也不同。可使用 %windir%。

以管理員權限運行

在%windir%/system32/找到cmd.exe然后【右鍵-以管理員權限運行】。

操作系統版本

根據操作系統的版本類型(32,64),路徑也會有所不同。

由於擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程序。如果應下載文件,請添加 MIME 映射。

類似的錯誤也需要采取以下方式解決。

無法訪問請求的頁面,因為該頁的相關配置數據無效。

簡單的說就是如圖將以下選項都勾上,我用的是windows8,windows7無需處理.net4.5部分(沒安裝4.5的話)。

未能從程序集“XXX, Version=XXX, Culture=neutral, PublicKeyToken=XXX”中加載類型“XXX(例如Service.Model)”。

參考以下步驟:
在命令提示符CMD(需要以管理員權限運行)上打開地址 C:\Windows\Microsoft.NET\Framework\v4.0.30319(最高的.net版本,除4.5之外) 。
執行aspnet_regiis.exe -iru 。如圖:

另外,如果是windows8的開發環境,則aspnet_regiis.exe -iru指令執行后會被提示不可用。這個時候只需要參考上面一個錯誤的解決方式,將需要安裝的功能裝上即可。如果還是不行,就需要檢查IIS,需要將IIS的應用程序池的模式設置為“經典”(就IIS這個操作,其他版本的操作系統未測試)。

 

請求篩選模塊被配置為拒絕該文件擴展名。

以管理員運行命令:
C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

HTTP 錯誤 404.17 - NotFound 請求的內容似乎是腳本,因而將無法由靜態文件處理程序來處理。

以管理員運行命令:
C:\Windows\system32>cd D:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\
C:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation>servicemodelreg.exe -r

請求篩選模塊被配置為拒絕包含 hiddenSegment 節的 URL 中的路徑。

注意,一般情況下,並不需要考慮這個問題。如果需要解除這個限制的話,參考以下步驟:
以管理員權限運行記事本(如果將提示您輸入管理員密碼或進行確認,鍵入該的密碼,或單擊 繼續 )。
打開文件 %windir%\System32\inetsrv\config\applicationHost.config 。
在該 ApplicationHost.config 文件中找到在 <requestfiltering>元素,然后找到該 <hiddensegments>元素。
在該 <hiddensegments>元素,刪除與所請求的 URL 中指定的目錄匹配的條目。Ctrl+S后退出。

無法識別的屬性“targetFramework”。請注意屬性名稱區分大小寫。

.NET版本的問題。需要將站點的.net版本和應用程序的.net版本調成一致。如果無法選擇應用程序池版本為4.0(或其他)的話,需要進行以下操作:
【 安裝指定版本.net-以管理員權限運行:C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -r】

...

更多。


免責聲明!

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



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