【发布时间】:2014-06-26 07:51:10
【问题描述】:
现在有几天,我试图从局域网上的另一台计算机访问我的 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>
这里是主机 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
我也可能收到一条错误消息:
第一个是“调用者无法向 WCF 服务标识自己”
然后我尝试将安全性设置为无(出于故障排除目的),但我只得到了一个超时异常
编辑 3:
在控制台应用中:
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(ServiceTest.Service));
host.Open();
Console.WriteLine("Server Started");
Console.ReadLine();
}
编辑 4:
【问题讨论】:
-
可能是因为防火墙阻塞了 3100 端口。
-
您是否在 IIS 上托管 WCF 服务?
-
@daryal 防火墙关闭,问题出在 ;)
-
@Ksven 不,我正在使用控制台应用程序托管服务
-
从客户端telnet到主机的3100端口,看看是否真的可达:)
标签: c# wcf networking .net-4.5