ASMX Webservice отбрасывает входящие параметры - PullRequest
0 голосов
/ 05 февраля 2010

Мне нужна помощь, чтобы выяснить, как решить проблему с веб-службой ASP.Net 2 asmx, которая, кажется, игнорирует входящие параметры.

У меня есть служба ASMX, которая принимает строку, выполняет небольшую работу с API-интерфейсом SAP и возвращает результаты операции в виде строки. Он отлично работает в среде разработчиков, но не работает в производственной среде, потому что, кажется, не получает входящие параметры.

Вот пример кода:

в потребляющем коде «TextIdentifier» - это строка, которая передается методу, вызывающему веб-сервис

SAPProxyWebService.SAPProxyWebService webservice = new SAPProxyWebService.SAPProxyWebService();
return webservice.GetEncodedText( TextIdentifier );

веб-метод объявлен следующим образом:

[WebMethod()]
public string GetEncodedText(string TextIDString)
{
   do some stuff with TextIDString;
   return results;
}

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

Однако, когда я регистрирую параметр TextIDString внутри веб-метода, перед любыми другими операциями он становится пустым. Когда я жестко кодирую определенное значение в веб-методе, я получаю результаты, которые я ожидаю получить для жестко закодированного значения.

Что мне нужно искать, чтобы веб-метод "терял" входящий параметр?

Ответы [ 2 ]

1 голос
/ 06 февраля 2010

Вы пробовали использовать Fiddler ? Вы должны иметь возможность просматривать SOAP / любые пакеты, которые вы используете между клиентом и сервером.

0 голосов
/ 11 февраля 2010

Таким образом, я не уверен точно, что было основной причиной, или какой аспект моего исправления фактически решил проблему, но я закончил тем, что сработал, чтобы развернуть веб-сервис в другом месте и указать клиентскую библиотеку. на это там. Я развернул отчет (включая клиентскую библиотеку) через нашу архитектуру разработки и тестирования, и все работало нормально. Затем я развернул веб-сервис обратно в его первоначальном расположении, а затем отчет и библиотеку с помощью архитектуры, и отчет работал с веб-сервисом в его исходном местоположении.

Я подозреваю, что, возможно, клиентская библиотека / отчет использовали кэшированную версию определения сервиса. Что не имеет смысла в этом, так это то, что, когда я изменял сервис, чтобы регистрировать происходящее, место в коде, который вызывал исключение (исключение нулевой ссылки), перемещалось, и отчет отражал новое местоположение ( т. е. номер строки) в коде, где выполнялся тот же оператор.

...