WCF "Сервер не дал значимого ответа" - PullRequest
3 голосов
/ 15 апреля 2010

У меня нет идей, поэтому я надеюсь, что кто-то может помочь. Вот что у меня есть:

  • Служба WCF, имеющая только конечную точку basicHttpBinding.
  • Существует только интерфейс службы, все остальные [DataMember], [FaultContract] являются конкретными типами.
  • Когда я запускаю его прямо из Visual Studio (с помощью WCF Test Client или моего пользовательского приложения), все работает (я отправляю запрос и получаю ответ). Обычно это занимает секунду или две.
  • Я опубликовал его на сервере IIS 6.
  • Я могу успешно открыть http://server/WebService/WebService.svc?WSDL
  • Я могу успешно открыть http://server/WebService/WebService.svc/mex (тот же вывод, что и выше)
  • Тестовый клиент WCF и мое пользовательское приложение могут успешно добавить ссылку на службу
  • Всякий раз, когда я пытаюсь вызвать сервисный метод, он ждет около 15 секунд, и я получаю страшную ошибку «нет значимого ответа».
  • Я запустил Fiddler и получил результат 202, который выглядел бы как успех.
  • Не возвращается более 65536 байт
  • Возвращает массив, но он маленький
  • Я пробовал удаленную отладку, но не могу заставить ее работать, возможно, из-за брандмауэра (но порт 80 открыт, я могу получить WSDL)
  • Я включил системную диагностику, ничего.
  • У меня есть IErrorHandler, который обычно регистрирует вещи, ничего.

Вот конфигурация конечной точки:

<endpoint address="" binding="basicHttpBinding" contract="Enterprise.IMyService" bindingNamespace="http://ourdomain.com/MyService/">
  <identity>
    <dns value="localhost" />
  </identity>
</endpoint>

Что-нибудь еще я могу попробовать? Возможно, это где-то простая настройка, но я не могу понять это.

Edit:

Необработанный отклик скрипача:

HTTP/1.1 202 Accepted
Date: Thu, 15 Apr 2010 19:02:45 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Length: 0

1 Ответ

1 голос
/ 16 апреля 2010

Я понял это! Это не имеет ничего общего с WCF. Когда я переместил его на сервер, строка подключения к базе данных больше не действительна. Конфигурация регистрации ошибок (для электронной почты) также больше не действительна и использует исключение. Чтобы ответить, потребовалось 15 секунд, потому что это время ожидания соединения с сервером SQL.

...