SSRS 2005-XML Web服务数据集-未将参数传递给Web服务
我有一份SSR2005报告,我想使用Web服务来检索一些数据。此Web服务将接受多个参数 作为测试,我在本地环境中设置了一个非常简单的演示webservice项目:SSRS 2005-XML Web服务数据集-未将参数传递给Web服务,xml,web-services,reporting-services,Xml,Web Services,Reporting Services,我有一份SSR2005报告,我想使用Web服务来检索一些数据。此Web服务将接受多个参数 作为测试,我在本地环境中设置了一个非常简单的演示webservice项目: [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService {
[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数据源的数据集,连接字符串中有webservice的(localhost)URL
根据MS文档(),在数据集的查询字符串中,我有以下内容:
http://tempuri.org/DivideByTwo
100
*
我遇到的问题是,尽管触发了webservice,但参数没有传递给webservice,因此返回值始终为0。我调试了webservice并在DivideByTwo()方法中放置了一个断点,当从报表触发webservice调用并命中断点时,无论我在查询XML的元素中放置了什么,numberIn值始终为0
我还尝试在“数据集”对话框的“参数”选项卡中指定“NumberIn”参数(使用提供的值),并从查询XML中删除该元素-结果是相同的
我在网上找到了一些文章,概述了同一个问题,但似乎找不到解决办法,在过去的几个小时里,我一直在胡思乱想。任何帮助都将不胜感激。正如DavveK所提到的,它看起来像是一个简单的输入错误,参数大写 您的服务定义正在查找:
numberIn
虽然您的XML数据集提供:
NumberIn
正如您引用的文章所提到的,paramater是区分大小写的。请参见#8 at发生这种情况有两个原因 1) 参数名称不完全匹配请注意,参数名称区分大小写 2) 命名空间未正确匹配。请注意,如果将名称空间指定为“”,请确保webservice定义中有尾随的正斜杠字符。例如
[WebService(Namespace = "http://tempuri.org/")]
public class ReportService : System.Web.Services.WebService
{
}
如果这两个条件中的任何一个没有正确指定,您的web服务方法将被调用,但参数(如datatime、int)都将具有默认值 你有一个小错误。由于参数区分大小写,因此您的查询应该区分大小写。我遇到了一个类似的问题,参数没有在所有情况下都正确通过。所以我不确定这是问题所在,但值得一试。谢谢DaweK。我很久以前问过这个问题,但我怀疑这就是问题所在,因为问题似乎在一段时间后就“消失”了,我无法确定我做了什么来解决这个问题。
[WebService(Namespace = "http://tempuri.org/")]
public class ReportService : System.Web.Services.WebService
{
}