gpt4 book ai didi

xml - SSRS 2005 - XML 网络服务数据集 - 参数未传递给网络服务

转载 作者:数据小太阳 更新时间:2023-10-29 01:38:31 25 4
gpt4 key购买 nike

我有一个 SSRS 2005 报告,我想使用网络服务来检索一些数据。此 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 数据源的数据集,连接字符串中有网络服务的 (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>

我遇到的问题是,尽管触发了 web 服务,但参数没有传递给 web 服务,因此返回值始终为 0。我已经调试了 web 服务并在 DivideByTwo 中放置了一个断点( ) 方法,并且当从报表触发 web 服务调用并命中断点时,无论我在查询 XML 的元素中放置什么,numberIn 值始终为 0。

我还尝试在“数据集”对话框的“参数”选项卡中指定“NumberIn”参数(使用提供的值)并从查询 XML 中删除该元素 - 结果是相同的。

我在网络上发现了一些概述相同问题的帖子,但似乎找不到解决方案,并且在过去的几个小时里一直在撕扯我的头发。任何帮助将不胜感激。

最佳答案

正如 DavveK 所提到的,看起来这是一个简单的拼写错误,您的参数大写。

您的服务定义正在寻找:

numberIn

当您的 XML 数据集提供:

NumberIn

正如您引用的文章所述,参数区分大小写。见 #8 http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx

关于xml - SSRS 2005 - XML 网络服务数据集 - 参数未传递给网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com