加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 08:05:23 所属栏目:百科 来源:网络整理
导读:我有一个SSRS 2005报告,我想使用一个webservice来检索一些数据。该Web服务将接收几个参数。 作为测试,我在当地环境中设置了一个非常简单的演示webservice项目: [WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfi
我有一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读