我需要查询在Reporting Services中传递复杂参数的Web服务作为输入。 我怎么能这样做?
在Visual Studio的查询设计器中,我正在执行以下查询:
<Query>
<SoapAction>http://mywebservice.com/Customers/GetCustomers</SoapAction>
<Method Name="GetCustomers" Namespace="http://mywebservice.com/Customers/">
<Parameters>
<Parameter Name="myParams" type="xml">
<DefaultValue>
<myParams>
<IdCustomer>0</IdCustomer>
</myParams>
</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="true">*</ElementPath>
</Query>
WebService希望它作为参数:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetCustomer xmlns="http://mywebservice.com/Customers/">
<myParams>
<IdCustomer>int</IdCustomer>
<IdCustomer>int</IdCustomer>
</myParams>
</GetCustomer>
</soap:Body>
</soap:Envelope>
当我在Visual Studio 2008中尝试时,我收到以下错误消息:
无法执行指定网址的网络请求。肥皂故障: System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---&GT; System.NullReferenceException:未将对象引用设置为对象的实例。
答案 0 :(得分:0)
您应该查看在测试客户端中发送的xml,以获取查询所需语法的示例。我建议使用Visual Studio附带的wcftestclient。运行测试后,您可以在XML选项卡上查看xml(在wcftestclient的屏幕底部),并替换&lt; DefaultValue&gt;中的内容。查询中带有相应参数值的部分。
该Web服务的查询应如下所示。请注意 a 命名空间,这取决于您自己的情况:
Parse.User.extend
另外,我确实看到你有&lt; Parameter type =“xml”&gt;。对我来说,我花了几个小时来完成类似的查询并错过了 type =“xml”。 MSDN上似乎没有详细记录该属性。