Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSRS 2005-XML Web服务数据集-未将参数传递给Web服务_Xml_Web Services_Reporting Services - Fatal编程技术网

SSRS 2005-XML Web服务数据集-未将参数传递给Web服务

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 {

我有一份SSR2005报告,我想使用Web服务来检索一些数据。此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://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
{

}