SSRS 2005 – XML webservice数据集 – 未被传递到webservice的参数

前端之家收集整理的这篇文章主要介绍了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

猜你在找的XML相关文章