最近因為專案需求重新把WCF開張,為了佈署方便,測試環境是用IIS來裝載WCF,但測試服務是否啟用時(直接瀏覽.svc)出現
HTTP 錯誤 404.3 - Not Found!
詳細的訊息:
因為網頁伺服器上設定的多用途網際網路郵件延伸標準 (MIME) 對應原則,而無法提供您要求的網頁。如果此網頁為指令碼,請新增處理常式,而且如果它是應該要下載的檔案,請新增 MIME 對應。
很惱人的錯誤畫面:
測試環境是Windows 8.1 + IIS8.5
(1)從IIS站台觀察,測試其他的網站服務(CAR、DEMO、DISP)都正常,就是WCF不work。
2.檢查了應用程式開發功能,確認已經安裝了ASP.NET 4.5。
如何解決執行 ASP.NET 應用程式發生 HTTP 錯誤 404.3(一點通系列 - MVP 撰寫)
https://support.microsoft.com/zh-tw/kb/2626257
(3)IIS應用程式集區也有.NET4.5
HTTP 錯誤 404.3 - Not Found
https://dotblogs.com.tw/alvin26/2014/03/07/144279
(4)從msdn找到WCF 疑難排解快速入門
裡頭的建議:
當「Windows Communication Foundation HTTP 啟動」沒有在控制台明確設定時,會出現這個錯誤訊息。 若要設定此項目,請移至控制台,按一下視窗左下角的 [程式]。 按一下 [開啟或關閉 Windows 功能]。 展開 [Microsoft .NET Framework 3.5.1],並選取 [Windows Communication Foundation Http 啟動]。
果然沒開
勾選啟用後按下確定,再測試一次,但出現了其他訊息:
HTTP 錯誤 404.17 - Not Found
好!繼續解題..
(5)同事k比對後發現了.NET Framework 4.5 進階服務,於是點開了看,裡頭有一個WCF服務!!
因為我們用IIS裝載而且是用basichttpbinding,HTTP應該要勾選啟用,於是勾選並按下確定。
(6)重新瀏覽svc,確認服務啟用了!
(7)測試wcf服務運作是否正常
A.開啟測試程式WcfTestClient.exe,因為安裝的是visual studio 2015,所以找14.0的目錄:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\WcfTestClient.exe
B.新增服務
新增剛剛的服務
測試一下原本的hello,輸入stanley,正常回應結果。
小結:
- 第4步驟WCF 疑難排解快速入門可以不用改,wcf也可以正常運作。
- 不要和自己比記憶,筆記!
參考:
如何解決執行 ASP.NET 應用程式發生 HTTP 錯誤 404.3(一點通系列 - MVP 撰寫)