2016年1月29日 星期五

Windows Server 2012 R2 IIS 裝載WCF失敗解決方案


一、問題說明
Windows Communication Foundation (WCF) 是用於建置服務導向應用程式的架構。
ASP.NET可以快速建置WCF服務,讓網站資料傳遞更為輕便,大有取代Web Service的趨勢。
當我們使用Visual Studio建置包含WCF For AJAX的網站後,在本機運作正常,部署到客戶端時,如果連結service.svc發生404的錯誤時,可能是伺服器尚未設定*.svc的處理常式對應
(發生的原因可能是:先安裝WCF再安裝IIS)

二、解決方案:
  A、開啟網際網路資訊服務 (IIS) MMC 嵌入式管理單元
  B、進入處理常式對應,檢查下圖中*.svc的對應設定


 
C、如果沒有上圖中的*.svc對應,就必須手動完成設定,以4.0和64位元作業系統為例:
    1、先設定svc-Integrated-4.0,點選 [新增 Managed 處理常式]
 

要求路徑:*.svc
    類型(T):System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    名稱(N):svc-Integrated-4.0
    並點選『要求限制』按鈕,取消核取方塊,並點選『確定』完成設定1。

   2、設定svc-ISAPI-4.0_64bit,點選[新增指令碼對應]
 

要求路徑:*.svc
    執行檔(E):%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
    名稱(N):svc-ISAPI-4.0_64bit
    並點選『要求限制』按鈕,取消核取方塊,並點選『確定』完成設定2。

  D、完成上述的設定後,就可以讓.NETFramework4.0的web應用程式,支援WCF的服務。

三、後記:
  以上說明,希望此備忘錄能幫助使用WCF服務遇到困境的程式開發者解決問題。

32位元4.0的類型:System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
32位元4.0的執行檔:%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll




沒有留言: