Wcf уменьшает время ожидания подключения клиента

У меня есть служба wcf, которая отлично работает. Проблема в клиенте. У меня есть небольшой графический интерфейс, в котором пользователь должен разместить IP-адрес, в котором находится служба wcf. И клиент, и служба находятся в одной сети, поэтому, если я не могу подключиться, это связано с тем, что я указал неправильный 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>

note Я помещаю 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 секунды ... Я знал, что не смогу подключиться, но было бы хорошо, если бы я мог сократить это время. Я планирую использовать эту программу в той же сети ...


person Tono Nam    schedule 23.02.2013    source источник
comment
Я отредактировал свой ответ.   -  person scartag    schedule 24.02.2013


Ответы (2)


На вашей NetTcpBinding_IService1 привязке Конфигурация

добавить атрибут sendTimeout="00:00:02"

Это уменьшит время до 2 секунд.

Изменить

Пожалуйста, используйте OpenTimeout="00:00:02", это должно сработать.

person scartag    schedule 23.02.2013
comment
Спасибо, что скоро попробуем! - person Tono Nam; 26.02.2013
comment
@scartag Что может произойти, если после изменения значения на одну секунду попытка подключения будет длиться не менее 22. А затем будет выбрано исключение EndpointNotFoundException - person Carlos487; 22.05.2014

замените тайм-аут в вашем bindingConfiguration NetTcpBinding_IService1

person burning_LEGION    schedule 23.02.2013