2013-02-26 100 views
1

我通過演練準備中引用一個WCF TCP服務「如何:使用NetTcpBinding的使用Windows身份驗證和交通運輸安全在WCF從Windows窗體調用」從相同的解決方案

http://msdn.microsoft.com/en-us/library/ff647180.aspx

當我到「步驟7:創建測試客戶端應用程序」和子步驟5:「5.在添加服務引用對話框中,將服務URI:設置爲net.tcp:// localhost:8523/WCFTestService,然後單擊開始」

我得到「無法識別URI前綴,元數據包含無法解析的引用」。

就好像「添加服務引用」不能識別「net.tcp」綁定。

我在使用Visual Studio 2012的Windows 7 x64上,我的項目針對x86和Framework 4.5。

我發現這個線程

An error in the MSDN walk-through - "How to: Host WCF in a Windows Service Using TCP"

但他們沒有一個問題,當客戶端在同一個解決方案。我是。

服務配置:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="Publisher.MyServiceBehavior"> 
       <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service name="POC_WcfTcpSubscribePublishService.Publisher"> 
      <endpoint address="" binding="netTcpBinding" bindingConfiguration="" 
       name="NetTcpBindingEndpoint" contract="POC_WcfTcpSubscribePublishService.IPublisher"> 
       <identity> 
        <dns value="localhost" /> 
       </identity> 
      </endpoint> 
      <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" 
       name="MexTcpBindingEndpoint" contract="IMetadataExchange" /> 
      <host> 
       <baseAddresses> 
        <add baseAddress="net.tcp://localhost:8523/WcfTcpSubscribePublish" /> 
       </baseAddresses> 
      </host> 
     </service> 
    </services> 
</system.serviceModel> 

任何指針是歡迎的。

+1

您試圖添加引用的服務是否正在運行?這是一個要求,我相信 - 您可以從上下文菜單單獨運行服務項目。 – 2013-02-26 21:21:06

+0

對不起,遲到的迴應。這是問題。我原以爲我正在運行這項服務,但是當我開始使用時,它因爲一個不同的原因而立即關閉。現在我可以將服務引用添加到客戶端項目。很有趣,但發現仍然不起作用。 – dtaylor 2013-02-28 13:35:21

+0

如果您將此回覆添加爲答案,我會將其標記爲已回答。 – dtaylor 2013-02-28 13:35:57

回答

1

的服務必須在運行之前,你可以添加一個參考吧。

您可以在Solution Explorer中的上下文菜單中單獨運行服務項目。

1

你有一個服務行爲:Publisher.MyServiceBehavior

但你不說服務的行爲適用於您的服務。服務名稱後=「...」這樣做:

behaviorConfiguration =‘Publisher.MyServiceBehavior’

+0

Trevor,謝謝你的迴應。對不起,我被拉到很多方向。這是一個很好的結果,但沒有解決我的問題。正如我回答上面的「500 - 內部服務器錯誤」,問題是我的服務不能保持運行。現在我可以運行服務了,我可以在客戶端引用它。 – dtaylor 2013-02-28 13:38:35

相關問題