2013-02-26 118 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

相关问题