.NET Webservice половина работает, половина 404-х годов - PullRequest
0 голосов
/ 26 мая 2009

У меня есть веб-служба .NET, работающая в качестве службы Windows на компьютере под управлением Windows Server2003 R2. У меня есть отдельное приложение .NET / C # 2.0, которое вызывает этот веб-сервис из любой точки нашей локальной сети. Веб-сервис имеет 2 метода - 1 из этих вызовов методов работает безупречно. Однако другой метод всегда возвращает ошибку 404 «not found». Я могу посетить URL веб-сервиса и увидеть оба метода. Я сделал «обновление веб-ссылки» на мой проект, и он закончился нормально. Сгенерированный веб-прокси видел метод просто отлично. Но он никогда не работает во время выполнения, в то время как его брат и сестра работают просто отлично.

В файле конфигурации службы нет веб-настроек - только ваша стандартная строка подключения и несколько настроек приложения.

Что может вызвать 1 метод к 404, в то время как другой работает нормально?

РЕДАКТИРОВАТЬ: и веб-службы и вызывающего кода является .NET 2.0, C #. Это не WCF, просто "школьная ссылка" старой школы. На самом деле он основан на System.Web.Services.Protocols.SoapHttpClientProtocol, а не на Microsoft.Web.Services3.WebServicesClientProtocol.

Я подтвердил, что URL-адрес веб-службы не устанавливается динамически.

Ответы [ 2 ]

0 голосов
/ 26 мая 2009

Какой-то код действительно поможет нам лучше понять вашу проблему. Могу ли я спросить, является ли приложение, которое вызывает веб-сервис, веб-приложением, настольным приложением или службой Windows?

Если это веб-приложение, одним из предложений будет вызвать веб-сервис вручную и запустить fiddler или firebug, чтобы увидеть ответ сервера и данные, которые передаются и возвращаются. Это может стать отправной точкой для устранения проблемы.

0 голосов
/ 26 мая 2009

Вы не говорите, какую технологию вы используете, поэтому я предполагаю, что это WCF. Вы не говорите, какую версию .NET вы используете на стороне службы, поэтому я предполагаю, что .NET 3.5 SP1.

Я рекомендую вам присмотреться. В частности, включите трассировку и посмотрите, что она говорит об этом. Запрос получен? В какой момент генерируется ответ? Возможно, служба найдена, но что-то не так с «действием» SOAP, так что эта вторая операция действительно не найдена. Помните, что то, что вы видите в веб-прокси, - это не то, что на самом деле запрашивает веб-прокси. Это должно быть, но может и не быть. Включите трассировку и узнайте.

Вы также можете рассмотреть возможность отладки службы, чтобы увидеть, была ли достигнута операция. Возможно, исключение в операции переводится на 404?

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

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