Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf net.tcp上没有端点侦听错误_Wcf_Net.tcp - Fatal编程技术网

Wcf net.tcp上没有端点侦听错误

Wcf net.tcp上没有端点侦听错误,wcf,net.tcp,Wcf,Net.tcp,服务配置 <service name="Services.MyService"> <host> <baseAddresses> <add baseAddress="net.tcp://localhost:9000/Services/MyService/" /> </baseAddresses> </host> <endpoint name="NetTcpS

服务配置

<service name="Services.MyService">
   <host>
      <baseAddresses>
         <add baseAddress="net.tcp://localhost:9000/Services/MyService/" />
      </baseAddresses>
    </host>
    <endpoint name="NetTcpService" 
        address="" 
        binding="netTcpBinding" 
        bindingConfiguration="TcpConfig"
        contract="Service.IMyService" />
    <endpoint 
        address="mex" 
        binding="mexTcpBinding" bindingConfiguration="TcpConfig" 
        contract="IMetadataExchange" />
  </service>
客户端代码:

var endPoint = new EndpointAddress("net.tcp://localhost:9000/Services/MyService/mex");
var binding = new NetTcpBinding { TransferMode = TransferMode.Streamed, SendTimeout = TimeSpan.MaxValue };
var channel = new ChannelFactory<IMyService>(binding, endPoint);
var proxy = channel.CreateChannel();
错误:

在网络上没有端点侦听。tcp://localhost/Services/MyService/mex

tcp服务正在运行,防火墙已关闭。不确定遗漏了什么。

您的实际服务是在网络上收听。tcp://localhost:9000/Services/MyService/ -因此,请尝试将代码更改为如下所示:

var endPoint = new EndpointAddress("net.tcp://localhost:9000/Services/MyService/");
var binding = new NetTcpBinding { TransferMode = TransferMode.Buffered, SendTimeout = TimeSpan.MaxValue };
var channel = new ChannelFactory<IMyService>(binding, endPoint);
var proxy = channel.CreateChannel();
除了更改地址外,还可以使用TransferMode.Buffered而不是Streamed,这是默认设置-我在服务器端配置中没有看到任何表示您正在使用Streamed传输模式的配置

地址网。tcp://localhost:9000/Services/MyService/mex 是元数据交换地址-不是您的服务。您的客户端需要此端点才能查询服务,以了解它提供的服务方法的类型、它期望的参数等等—创建客户端代理代码所需的一切。但这不是您的实际服务所在的服务地址,也不是响应请求的服务地址。

您的实际服务正在网络上侦听。tcp://localhost:9000/Services/MyService/ -因此,请尝试将代码更改为如下所示:

var endPoint = new EndpointAddress("net.tcp://localhost:9000/Services/MyService/");
var binding = new NetTcpBinding { TransferMode = TransferMode.Buffered, SendTimeout = TimeSpan.MaxValue };
var channel = new ChannelFactory<IMyService>(binding, endPoint);
var proxy = channel.CreateChannel();
除了更改地址外,还可以使用TransferMode.Buffered而不是Streamed,这是默认设置-我在服务器端配置中没有看到任何表示您正在使用Streamed传输模式的配置


地址网。tcp://localhost:9000/Services/MyService/mex 是元数据交换地址-不是您的服务。您的客户端需要此端点才能查询服务,以了解它提供的服务方法的类型、它期望的参数等等—创建客户端代理代码所需的一切。但这不是您的实际服务所在的服务地址,也不是响应请求的服务地址。

如果使用endpoint net,我得到的信息基本相同。tcp://localhost:9000/Services/MyServiceSee 我的回答-您可能还需要在创建绑定时更改为TransferMode.Buffered,除非您选择了TcpCOnfig绑定配置还没有在你的帖子中出现能否设置流式传输模式?请给我们看一下服务器端配置的部分??正如下面提到的,这是自托管的。如果我使用endpoint net,我会得到基本相同的消息。tcp://localhost:9000/Services/MyServiceSee 我的回答-您可能还需要更改为TransferMode。在创建绑定时缓冲,除非TcpCOnfig绑定配置-您的帖子中没有显示该配置能否设置流式传输模式?请给我们看一下服务器端配置的部分??如下所述,这是到服务配置的自托管传输模式,并将客户端端点指向网络。tcp://localhost:9000/Services/MyService 而且还是一样message@Suedeuno:您如何托管WCF服务??自托管在应用程序中,或托管在IIS中??将transferMode添加到服务配置中,并将客户端端点指向网络。tcp://localhost:9000/Services/MyService 而且还是一样message@Suedeuno:您如何托管WCF服务??在应用程序中自托管,或在IIS中托管??