ChannelFactory.CreateChannel и создание прокси в WCF выполняется медленно - PullRequest
2 голосов
/ 01 апреля 2009

У меня есть клиент-серверное приложение, в котором клиент общается с сервером с помощью WCF (WCF используется как на клиенте, так и на сервере). Моя проблема заключается в том, что создание экземпляра автоматически сгенерированного прокси в клиенте, следующим образом:

 new Service1Client() 
постоянно занимает 15.xxx секунд. Я попытался решить эту проблему, и пришел к следующим результатам:

1) Компилирование и запуск одного и того же кода на других компьютерах завершается одинаково (всегда 15.xxx секунд).

2) Создание прокси с использованием ChannelFactory.CreateChannel< IService1 >() не помогает (это дает тот же результат).

Я предполагаю, что всякий раз, когда фабрика каналов создает канал, она пытается что-то сделать с тайм-аутом в 15 секунд, а в случае неудачи она продолжает создание.

Кстати, я использую .Net 3.5 без SP1 и не могу перейти на SP1: (

Спасибо, впереди

Ответы [ 3 ]

1 голос
/ 03 декабря 2009

Несмотря на то, что он уже устарел, он может быть полезен для тех, кто ищет то же самое. Проблема может быть связана с проблемой разрешения DNS, которая может быть решена в SP1. Таким образом, вы можете проверить, происходит ли это только при использовании имени хоста или также с указанным IP-адресом.

0 голосов
/ 11 февраля 2011

Несмотря на то, что это очень старая информация, я только что обнаружил эту проблему, хотя у меня была 7-секундная задержка при первом вызове метода в Service Client, я отслеживал его (в моей среде) в настройках Internet Explorer, как указано выше , но в моих обстоятельствах это был не прокси, а настройки автоматического определения.

Подключения -> Настройки локальной сети и настройки автоматического определения включены.

Я играл с machine.config и app.config и установил

<runtime>
  <generatePublisherEvidence enabled="false"/>
</runtime>

Что тоже не имело значения.

Я нашел этот ответ здесь и подумал, что внесу немного больше информации на случай, если кто-то еще в будущем столкнется с чем-то подобным.

(Это с сервисом .Net 4 WCF)

0 голосов
/ 01 апреля 2009

Я видел это раньше, где время находилось в поисках прокси-сервера. Проверьте настройки прокси-сервера WinINET (Internet Explorer).


Моя конкретная причина думать "прокси-сервер" в том, что это занимает 15 секунд. 15s звучит как хороший круглый номер для таймаута сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...