2009-05-26 4 views
0

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

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

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

EDIT: И веб-сервис, и код вызова - это .NET 2.0, C#. Это не WCF, просто старая школа «веб-ссылка». Фактически, он основан на System.Web.Services.Protocols.SoapHttpClientProtocol, а не Microsoft.Web.Services3.WebServicesClientProtocol.

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

+0

Не могли бы вы высказать какой-то код? – CSharpAtl

+0

Уверен, что ссылка на веб-службу указывает на правильный веб-сервис? Если динамическое значение должно быть в вашем файле конфигурации. – CSharpAtl

+0

Вы что-то изменили в методе, который не работает, в последнее время? – shahkalpesh

ответ

0

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

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

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

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

0

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

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