我有一个运行良好的 wcf 服务。问题是客户端。我有一个小 gui,用户应该在其中放置 wcf 服务所在位置的 IP 地址。客户端和服务都在同一个网络上,所以如果我无法连接,那是因为我提供了不正确的 IP 地址或防火墙被阻止。无论如何,我怎样才能缩短那个时间,这样如果用户输入了不正确的 ip,他就不必等待 20 秒?这是我的 app.config 文件如何查找我的客户端:
这是我的客户端 app.config 文件的外观:
<client>
<endpoint address="net.tcp://127.0.0.1:41236/" binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IService1" contract="ServiceReference1.IService1"
name="NetTcpBinding_IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
编辑
我已将我的 app.config 文件更新为:
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IService1" sendTimeout="00:00:02" receiveTimeout="00:00:02">
<security mode="Transport" />
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://10.10.1.154:41236/"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IService1"
contract="ServiceReference1.IService1"
name="NetTcpBinding_IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
请注意,我故意放置了一个不存在的 ip 地址,由于某种原因,程序仍然等待 10 秒......我添加了sendTimeout="00:00:02" receiveTimeout="00:00:02"
属性,但仍然没有工作:(
编辑 2
这是我收到的错误消息:
无法连接到 net.tcp://10.10.1.154:41236/。连接尝试持续了 00:00:21.0342031 的时间跨度。TCP错误码10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应10.10.1.154:41236。
请注意,它尝试连接 21 秒......我知道我将无法连接,但如果我能减少那个时间会很好。我打算在同一个网络上使用这个程序......