2013-05-19 120 views
0

大家好,你好。IIS中的主機WCF

所以,我敢於讓自己成爲WCF服務。 它的工作原理應該是,當我在WCF測試實用程序中運行它時。

但隨着下一步我遇到了一些麻煩。 在IIS中承載WCF服務。

如上所述,該服務適用於測試工具。

我的解決辦法:
https://dl.dropboxusercontent.com/u/21380898/RealKursusSolution.PNG

對於IIS託管我的服務,我創建了一個名爲「HostIISTcp」的文件夾,你可以在溶液中,在那裏我加了我的dll和我PDB的的「bin」文件夾下看到。 據我所知,IIS無法運行一個app.config文件,所以我創建了一個web.config文件,我只需從類庫中的app.config文件中複製/粘貼。

的Web.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.web> 
    <compilation debug="true" /> 
    </system.web> 
    <system.serviceModel> 
    <services> 
     <service name="MyWCFServices.RealKursusService.KursistService"> 
     <endpoint address="" binding="basicHttpBinding" contract="MyWCFServices.RealKursusService.IKursistService"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8080/MyWCFServices/RealKursusService/KursistService/" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <serviceMetadata httpGetEnabled="True"/> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
</configuration> 

我認爲,問題的web.config文件規定,並原諒我處於這樣的新手,但我一直在使用Google像一個瘋狂的和我真的找不到合適的解決方案。

總結: 我在正確的軌道上嗎? 是否有另一個(更好的)在IIS中託管wcf服務的解決方案? 如果您可以指出web.config文件中是否缺少任何內容,那就太棒了。

我使用visual studio 2012,IIS 8 .net framework 4.5,坐在皮椅上。

+0

如果我沒有記錯,關鍵是要以某種方式創建一個SVC文件,然後刪除在IIS應用程序文件夾... –

+0

檢查http://stackoverflow.com/questions/2113461/relationship-between-svc-files-and-wcf-projects –

+1

你得到什麼錯誤? –

回答

2

所以我想通了。

順便說一句,對於大問題抱歉,我很尷尬爲什麼我的wcf服務不會託管。

我web.config中通過以下步驟由工作:

  1. 「添加新網站」,以解決方案(WCF的服務)
  2. 刪除兩個servicefiles(Service.cs,IService.cs ),因爲我已經在我的其他服務庫中定義了我的服務。
  3. 添加引用到我現有的服務圖書館。
  4. 編輯在我的新創建的網站service.svc文件,以刪除web.config中的整體配置上我的新網站我exsisting服務服務

    <%@ ServiceHost Language="C#" Debug="true" Service="MyWCFServices.RealKursusService.KursistService" %> 
    
  5. 點。

  6. 使用「WCF配置」工具編輯web.config(右鍵單擊web.config文件) 使用WCF配置工具時,它非常簡單。添加一個服務並將其指向bin目錄中的引用dll。

然後在IIS

希望主持一個新的應用SVC文件下我的默認網站這可以幫助別人

+0

我強烈建議不要使用網站「項目」。相反,您應該始終使用Web應用程序項目。嘗試同樣的事情,但這次使用Add-> New Project並選擇WCF/WCF Service Application。 –

+0

謝謝。你能解釋爲什麼嗎? – OhLongJohnJohnson

+0

他們很奇怪,與Visual Studio中的其他類型的項目不同 - 例如,沒有項目文件。其他的一切都是關於他們的。 –