现在,我尝试从局域网上的另一台计算机访问我的WCF服务,但无法访问它。
但在当地它的工作正常。
我能找到的大多数类似问题都是使用IIS来托管服务。
我试图关闭防火墙,但我无法取得任何效果。
以下是配置文件,请询问您是否需要更多:
客户的App.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<system.serviceModel>
<client>
<endpoint name="default"
address="http://myhostIP:3100/"
binding="basicHttpBinding"
contract="ServiceInterface.IService"/>
</client>
</system.serviceModel>
</configuration>
这是Host App.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<system.serviceModel>
<services>
<service name="ServiceTest.Service">
<endpoint address="http://0.0.0.0:3100"
contract="ServiceInterface.IService"
binding="basicHttpBinding"/>
</service>
</services>
</system.serviceModel>
</configuration>
如果你们有任何想法...... 我无法找到任何信息
编辑:
我使用控制台应用程序来托管服务
本地和远程主机的Telnet连接正在运行
编辑2:
我刚刚看到我在复制App.config文件时犯了一个错误。绑定类型应为wsDualHttpBinding
而不是basicHttpBinding
我也可能收到错误消息:
第一个问题是&#34;来电者无法通过WCF服务进行识别&#34;
然后我尝试将安全性设置为无(用于故障排除)并且我只有超时异常
编辑3:
在控制台应用中:
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(ServiceTest.Service));
host.Open();
Console.WriteLine("Server Started");
Console.ReadLine();
}
编辑4:
此处提供了完整的解决方案https://github.com/sidewinder94/smallChatSolution
答案 0 :(得分:1)
以下是您的问题的解决方案。
客户端的应用配置
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<system.serviceModel>
<client>
<endpoint name="default"
contract="ChatDllContracts.IService"
binding="netTcpBinding"
address="net.tcp://myHostIp:3100/"
bindingConfiguration="mynet"/>
</client>
<bindings>
<netTcpBinding>
<binding name="mynet" sendTimeout="00:00:05" portSharingEnabled="true">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
</configuration>
ChatServer的app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<system.serviceModel>
<services>
<service name="ChatDll.Service">
<endpoint contract="ChatDllContracts.IService"
binding="netTcpBinding"
address="net.tcp://localhost:3100"
bindingConfiguration="mynet"/>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="mynet" sendTimeout="00:00:05" portSharingEnabled="true">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
</configuration>
请注意,您需要启用 Net.Tcp端口共享服务(在服务器和客户端)以使其正常工作。