在 WCF 4.X 中配置 netTcpBinding 的正确方法是什么?

本文关键字:方法 是什么 netTcpBinding WCF 配置 | 更新日期: 2023-09-27 18:32:28

>我正在开发一个WCF应用程序,其绑定必须是"netTcpBinding",但是当我在Visual Studio 2013中运行它时,我收到此错误"无法获取元数据http://localhost:62081/Queue.svc"。我像做一样仔细搜索,但没有找到工作的例子。我想了解这是如何工作的。谢谢!!!下面你会发现我的网络配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <appSettings>
   <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
 </appSettings>
 <system.web>
   <compilation debug="true" targetFramework="4.5" />
 </system.web>
 <system.serviceModel>
   <behaviors>
     <serviceBehaviors>
       <behavior name="QueueBehavior">
         <serviceDebug includeExceptionDetailInFaults="true" />
         <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
    </behavior>
     </serviceBehaviors>
   </behaviors>
   <services>
     <service behaviorConfiguration="QueueBehavior" name="ComponenteCola.Queue">
       <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
      name="QueueNetTcpEndPoint" contract="ComponenteCola.IQueue" />
       <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
      name="NetTcpMetadataPoint" contract="IMetadataExchange" />
       <host>
         <baseAddresses>
           <add baseAddress="net.tcp://localhost:57965/Queue" />
         </baseAddresses>
       </host>
     </service>
   </services>
 </system.serviceModel>
</configuration>

在 WCF 4.X 中配置 netTcpBinding 的正确方法是什么?

希望仍然有帮助

我认为它需要实际的元数据 URL,请尝试像这样添加

<baseAddresses>
       <add baseAddress="net.tcp://localhost:57965/Queue" />
       <add baseAddress="http://localhost:62081/Queue/mex" />
</baseAddresses>

我正在使用带有 .NET 4 的自承载 WCF 服务,但我认为不会有太多差异。