Странная проблема веб-сервиса .net 503

У меня довольно странная (ИМО) проблема с веб-сервисом, предоставленным третьей стороной.

При вызове веб-сервиса на реальном сервере все работает как положено. Вызов его в настройке разработки иногда возвращает с 503 - Service unavailable, в других случаях он работает. Периодически... Оба этих теста выполняются с одного и того же клиента, поэтому я не думаю, что это проблема на уровне сети.

Теперь странно то, что если я ставлю точку останова в строке перед вызовом веб-службы и перешагиваю вызов, она работает. Даже запуск кода (F5) после этой точки останова позволяет ему добиться успеха. Добавление System.Threading.Thread.Sleep(1000); перед вызовом (для имитации точки останова, своего рода) не имеет никакого эффекта.

У меня нет доступа к удаленным серверам, но я знаю его сервер 2003/IIS 6.0, и компания, которая предоставляет систему, с которой взаимодействует веб-сервис, утверждает, что с их сервером/программным обеспечением нет проблем.

Итак, прежде чем я серьезно начну указывать пальцем, кто-нибудь сталкивался с чем-то подобным раньше или что-то еще, что я могу попробовать?


person jasper    schedule 30.05.2011    source источник
comment
Сервера сильно загружены? Это когда-нибудь случается только с одним клиентом?   -  person Oded    schedule 30.05.2011
comment
@ Одед нет, нет нагрузки на сервер разработки, немного живого сервера.   -  person jasper    schedule 31.05.2011


Ответы (3)


В конце концов, это было вызвано проблемой прозрачного прокси-сервера (подмена IP-адреса), который находится выше по течению между моей системой и удаленной системой. Прокси возвращал 503, но под видом целевого хоста.

Мне удалось найти это только по счастливой случайности, как бы я определил это, если бы я искал проблему такого типа, поскольку в http-заголовках / необработанном дампе нет ничего, что выскочило бы на меня, чтобы указать на эту проблему?

person jasper    schedule 02.06.2011

503 это ошибка сервера. Это не может исходить от клиента.

Если это необходимо «доказать», вам нужно будет наблюдать за сетевым трафиком с помощью Fiddler или чего-то подобного.

person John Saunders    schedule 30.05.2011
comment
Мне не нужно доходить до этого уровня, чтобы доказать это, я просто не хочу оказаться с яйцом на лице, когда начну указывать пальцем, потому что я пропустил что-то очевидное. - person jasper; 31.05.2011
comment
@jasper: вы будете звучать намного убедительнее, если поймете, что все коды ошибок HTTP поступают с сервера, а все коды 500 из-за сервера. - person John Saunders; 31.05.2011

Возможно, сервер не принимает несколько запросов за короткий период от одного и того же клиента, чтобы защитить себя от DoS-атак.

В таком случае клиенты должны включить ограничение регулирования своих запросов. Так что проверьте еще раз с вашим поставщиком услуг.

person SiN    schedule 30.05.2011
comment
К сожалению, ничего подобного (они утверждают), и если бы это было так, я бы ожидал такого же поведения при работе в реальной системе. - person jasper; 31.05.2011