大致部署步驟如下:
1.編譯好WCF Service的Class Library,確保沒有錯誤。
2.建立.svc檔案,內容格式如下:1<%@ServiceHost language=c# Debug="true" Service="CommonService.MailService" %>
這裡的Service,是你的Service名稱,及其所屬命名空間.
為了確保IIS能正確識別.svc檔案,需要在IIS屬性中檢查,如果沒有.svc類型,需要手動添加,
3.在IIS發布WCF Service,將其目錄設定為Web共用,並注意在IIS中,為該虛擬目錄開啟匿名訪問的許可權。
4.在工程中,添加Web.config檔案。這裡需要建立WCF Service服務段的配置資訊,我們可以直接利用MS提供的組態工具方便進行配置,
開啟組態工具,根據設定精靈,選擇好Service Type 和Contract資訊。在選擇服務通訊方式的時候,我們需要選擇http通訊方式(因為我們服務的宿主是IIS,所以應選擇http方式)。在EndPoint中,填入Endpoint的地址。再選擇添加一個Endpoint,address為mex,類型為mexHttpBinding,Contract填入IMetadataExchange。
5.為了能在IIS中測試發布的效果,我們需要允許從用戶端通過http方式擷取中繼資料,這樣的選項WCF預設是false,所以我們還需要一點小設定:
在Service Behavior節點,單擊右鍵,建立一個Service Behavior,單擊Add按鈕,添加一個Extention Position,名稱為serviceMetadata,
並在上面雙擊,在視窗中,把HttpGetEnabled選項設定為true,
一切的準備工作就緒後,我們就可以通過IIS來訪問測試我們的WCF Service了。如:
紅色框中的部分,是我們設定了HttpGetEnabled的結果,否則是不會出現這一行的,它允許我們從用戶端以WSDL方式擷取其來源資料。
以上為網上轉來的內容,通過測試不知道網友是否出現:Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.
如果是,請看以下補充內容:
以上原因是因為我們沒有設直身分識別驗證,所以我們還要在設定檔web.config裡添加一段代碼:
<system.web>
<authentication mode="Windows"/>
</system.web>
這樣問題已經解決了...
最後附上我自己寫的源檔案,可以在IIS發布調試。
:wcf.rar