У меня есть отчет SSRS 2005, который я хотел бы использовать веб-сервис для получения некоторых данных. Этот веб-сервис будет принимать несколько параметров.
В качестве теста я настроил очень простой демонстрационный проект веб-сервиса в своей локальной среде:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service () {}
[WebMethod]
public int DivideByTwo(int numberIn) {
return numberIn/2;
}
}
В моем отчете о тестировании содержится набор данных с использованием источника данных XML с URL-адресом (localhost) веб-службы в строке подключения.
В строке запроса набора данных у меня есть следующее, основанное на документации MS (http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx):
<Query>
<SoapAction>http://tempuri.org/DivideByTwo</SoapAction>
<Method Namespace="http://tempuri.org/" Name="DivideByTwo" />
<Parameters>
<Parameter Name="NumberIn">
<DefaultValue>100</DefaultValue>
</Parameter>
</Parameters>
<ElementPath IgnoreNamespaces="True">*</ElementPath>
</Query>
Проблема, с которой я столкнулся, заключается в том, что, несмотря на то, что веб-сервис запускается, параметр не передается в веб-сервис, и, следовательно, возвращаемое значение всегда равно 0. Я отладил веб-сервис и поместил точку останова в DivideByTwo ), и когда вызов веб-службы запускается из отчета и достигается точка останова, значение numberIn всегда равно 0 независимо от того, что я помещаю в элемент XML-запроса.
Я также попытался указать параметр «NumberIn» на вкладке «Параметры» диалогового окна «Набор данных» (с указанным значением) и удалить элемент из XML-запроса - результат тот же.
Я нашел в сети несколько постов, описывающих ту же проблему, но, похоже, не могу найти решения, и последние несколько часов рвал на себе волосы. Любая помощь будет высоко ценится.