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中托管??