2010-04-15 3 views
3

Я здесь не из идей, поэтому я надеюсь, что кто-то может помочь. Вот что у меня есть:WCF «Сервер не дал значимого ответа»

  • Служба WCF, имеющая только базовую конечную точку HttpBinding.
  • Существует только служебный интерфейс, все остальные [DataMember], [FaultContract] являются конкретными типами.
  • Когда я запускаю его прямо из Visual Studio (с помощью тестового клиента WCF или моего пользовательского приложения), все работает (я отправляю запрос и получаю ответ). Обычно это занимает второе или два.
  • Я опубликовал его на сервере IIS 6.
  • Я могу успешно открыть http://server/WebService/WebService.svc?WSDL
  • Я могу успешно открыть http://server/WebService/WebService.svc/mex (тот же результат, что и выше)
  • Клиент WCF Test и мой заказ приложение может успешно добавить ссылку на службу
  • Всякий раз, когда я пытаюсь вызвать метод обслуживания он ждет около 15 секунд, и я получаю ужасную ошибку «без значимого ответа».
  • Я запустил Fiddler, и я получил результат 202, который будет казаться успешным.
  • Это не возвращение более чем 65536 байт
  • Это возвращающимся массив, но он мал
  • Я попытался удаленной отладки, но не может получить, чтобы работать, вероятно, из-за брандмауэром (но порт 80 открыт , Я могу получить WSDL)
  • Я включил system.diagnostics, ничего.
  • У меня есть 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 
+0

Я получил эту ошибку, потому что Enum не был инициализирован одним из допустимых значений перечисления, т. Е. Если ваш перечисление имеет только 3 элемента, обычно допустимые значения равны 0,1,2 (если вы не укажете другие значения) хотя переменная принимала бы любое значение базового типа enum (обычно Int32) –

ответ

1

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