Wcf减少客户端连接超时

时间:2013-02-23 19:27:55

标签: c# wcf timeout client connection-timeout

我有一个运行良好的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秒......我知道我无法连接但是如果我可以减少那个时间会很好。我打算在同一个网络上使用这个程序...

2 个答案:

答案 0 :(得分:3)

NetTcpBinding_IService1 bindingConfiguration

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

这会将它减少到2秒。

修改

请使用OpenTimeout="00:00:02"这应该有用。

答案 1 :(得分:0)

替换bindingConfiguration NetTcpBinding_IService1

中的超时