Asp.net
如何在我的網站上託管我的 WCF 服務?
我是 WCF 的新手。我開發了一個範例 WCF 服務。我的服務使用
basicHttp綁定。我使用 WAS 在本地 IIS 7.5 中託管我的服務,它工作正常。現在我想在我的網站上託管我的服務。
我搜尋Google,但它們中的大多數都託管在 IIS 的 localhost 中。請告訴我該怎麼做?最好參考一些教程或分步指南。
我相信你基本上有兩種選擇:
選項 1 - “bin”部署(首選選項)
- 將您的 WCF 服務編譯為 DLL(類庫)
- 在 IIS 中創建網站
- 將 WCF DLL 複製到網站的
.\bin文件夾中- 在該網站中創建一個
*.svc文件- 在網站文件夾中添加一個適當
web.config的來定義您的端點和服務配置等。您的 WCF 服務現在可以通過網站的基地址以及
*.svc文件名訪問,例如http://myserver/someweb/Myservice.svc你
*.svc會看起來像這樣:<%@ ServiceHost Language="C#" Debug="true" Service="WCF_Simple_Service.HelloIndigoService" %>屬性表示實現服務的
Service=類 - 完全限定其名稱空間。選項 2 - 把東西放進去
App_Code
- 在 IIS 中創建網站
- 將所有 WCF 相關
*.cs文件直接放入.\App_Code文件夾中- 在該網站中創建一個
*.svc文件- 在網站文件夾中添加一個適當
web.config的來定義您的端點和服務配置等。您的 WCF 服務現在可以通過網站的基地址以及
*.svc文件名訪問,例如http://myserver/someweb/Myservice.svc你
*.svc會看起來像這樣:<%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %>一個簡單的範例
web.config可能如下所示:<system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="WithDebug"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> <services> <service name="SimpleWCF.HelloIndigoService" behaviorConfiguration="WithDebug"> <endpoint address="" binding="basicHttpBinding" contract="SimpleWCF.IHelloIndigoService" /> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> </system.serviceModel>您基本上定義了您的
<service>標籤 - 再次:name=表示實現服務的類 - 完全限定其名稱空間。它必須包含至少一個端點——“mex”端點是可選的——但非常有用,尤其是對於開發和測試。它允許客戶端“發現”服務並獲取其服務描述,以便與它進行互動。在 IIS 中部署服務後,您可以使用WCF 測試客戶端(WCF 免費提供)或SoapUI(一種通用 SOAP 測試實用程序)等工具查看它的執行情況(提供免費版本供您使用) .