Wcf减少客户端连接超时

本文关键字:连接 超时 客户端 Wcf | 更新日期: 2023-09-27 18:01:00

我有一个运行良好的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

这是我收到的错误消息:

无法连接到网络。tcp://10.10.1.154:41236/.连接尝试持续的时间跨度为00:00:21.0342031。TCP错误代码10060:连接尝试失败,因为连接方没有在一段时间或建立连接后正确响应失败,因为连接的主机无法响应10.10.1.154:41236。

请注意,它尝试连接了21秒。。。我知道我无法连接,但如果我能减少时间就好了。我计划在同一个网络上使用这个程序。。。

Wcf减少客户端连接超时

NetTcpBinding_IService1绑定配置上

添加属性sendTimeout="00:00:02"

这将减少到2秒。

编辑

请使用OpenTimeout="00:00:02",这应该可以工作。

替换bindingConfiguration NetTcpBinding_IService1 中的超时

这里已经给出了wcf channelfactory和opentimeout的答案。这与套接字超时有关。似乎需要一个变通办法。