SSRS 2005 – XML webservice数据集 – 未被传递到webservice的
我有一个SSRS 2005报告,我想使用一个webservice来检索一些数据。该Web服务将接收几个参数。
作为测试,我在当地环境中设置了一个非常简单的演示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://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> 我遇到的问题是,尽管webservice被触发,参数没有被传递给webservice,因此返回值总是为0.我已经调试了webservice并在DivideByTwo()方法中放置了一个断点,并且当从报表触发webservice调用并且中断断点时,numberIn值总是为0,而不管我放在Query XML的元素中。 我还尝试在“数据集”对话框的“参数”选项卡中指定“NumberIn”参数(使用提供的值),并从查询XML中删除元素 – 结果是相同的。 我在网站上发现了一些帖子,概述了同样的问题,但似乎找不到解决方案,并且在过去几个小时内一直在撕裂我的头发。任何帮助将不胜感激。
正如DavveK所说,看起来它是一个简单的拼写错误,大小写参数。
您的服务定义正在寻找: numberIn 而XML DataSet则提供: NumberIn 作为您提到的文章,参数是区分大小写的。见http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx#8 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |