2011-06-09 45 views
0

我已經設置了一個wcf服務,當我瀏覽到.svc文件時,我將看到一個屏幕...爲什麼我必須在我的WCF配置中指定我的地址(它實際上是工作的)

您已經創建了一項服務。

所以我知道服務運行成功。不過,我查看了配置,它實際上並沒有地址。

<system.serviceModel> 
    <services> 
     <service behaviorConfiguration="CountryProvinceBehavior" name="CountryProvinceWCFService"> 
     <endpoint address="" binding="webHttpBinding" contract="ICountryProvinceWCFService" behaviorConfiguration="CountryProvinceBehavior"/> 
     </service> 
    </services> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior name="CountryProvinceBehavior"> 
        <serviceMetadata httpGetEnabled="true"/> 
        <serviceDebug includeExceptionDetailInFaults="true"/> 
       </behavior> 
      </serviceBehaviors> 
      <endpointBehaviors> 
       <behavior name="CountryProvinceBehavior"> 
        <webHttp/> 
       </behavior> 
      </endpointBehaviors> 
     </behaviors> 
    </system.serviceModel> 

然後我寫了一個控制檯應用程序來測試服務。

我從瀏覽器中獲取了thr url,並從控制檯應用程序中添加了一個'Service Reference'我期待該項目在我的配置文件中創建enpoint定義。然後,當我創建一個客戶端,我可以加載這些CONFIGS之一,但它們不存在....

回答

0

你不指定配置的地址,但在這種情況下,你指定端點的地址(「」)。這意味着WCF將使用它作爲相對於服務基地址的地址。如果該服務託管在IIS中,則它將成爲.svc文件的地址。如果服務是自託管的(即直接使用ServiceHost),則地址將是傳遞給ServiceHost構造函數的地址。

+0

是的,但爲什麼不會Visual Studio創建客戶端的設置配置,當我添加引用? – Exitos 2011-06-09 14:31:10

+0

您的服務使用webHttpBinding/webHttpBehavior - 這是對REST(即非SOAP)服務的綁定。與SOAP端點不同,REST沒有公開任何元數據,因此「添加服務引用」嚮導無法正確創建客戶端配置(有時它甚至會創建一些東西,但在絕大多數情況下,它創建的客戶端不能直接用於消費服務)。 – carlosfigueira 2011-06-09 16:06:17

+0

爲什麼沒有爲WCF服務公開元數據?當然,我們應該能夠從一個C#客戶端應用程序調用它們?或者我們只是手動創建POST請求並解析文檔已返回? – Exitos 2011-06-14 12:10:33

相關問題