我有一个SSRS 2005报告,我想使用web服务来检索一些数据。这个web服务将会有几个参数。SSRS 2005 - XML webservice数据集 - 参数没有传递给web服务
作为一个测试,我建立了一个非常简单的演示Web服务项目在我的本地环境:
[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数据源的数据集,与web服务中(本地主机)网址连接字符串。
在数据集我有以下的查询字符串,基于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>
我遇到的问题是,尽管Web服务被触发,参数不传递给webservice,因此返回值始终为0.我调试了webservice并在DivideByTwo()方法中放置了一个断点,并且当从报告触发web服务调用并且命中断点时,numberIn值无论我放置在查询XML的元素中,它始终为0。
我也试过在数据集对话框的“参数”选项卡中指定“NumberIn”参数(使用提供的值)并从查询XML中删除元素 - 结果相同。
我在网上发现了一些概述相同问题的帖子,但似乎无法找到解决方案,并且在过去的几个小时里一直在撕掉我的头发。任何帮助将非常感激。
你有一个小的错字。由于参数区分大小写,因此您的查询应该是。我有一个类似的问题,参数没有通过与所有案件正确..所以不知道这是问题,但值得一试。 –
DavveK
2011-08-24 14:23:05
谢谢DaweK。我在一段时间前问过这个问题,但我怀疑这是问题,因为问题似乎在一段时间后“消失”,我无法确定我为解决问题所做的工作。 – Michael 2011-10-12 06:46:47