我正在研究一个独特的解决方案,这一天的大部分时间都遇到了异常情况。
由于需要通过SSRS报告调用我们的WCF Web服务,我选择了基于当前服务配置的最佳示例。解决方案在大多数情况下都有效,但是,我认为我可能会破坏参数有效载荷。SSR中没有内置WSDL生成器,因此我一步一步地执行此操作:(下面的参数配置中有什么异常吗?
当变量的长度都是一个字符时,有效负载会成功发送,但是,当我使用普通参数名时,除了第一个变量外,变量会作为默认值出现。有什么帮助吗?
服务(简单示例)
[MessageContract(IsWrapped = true)]
public class ServiceResponse
{
[MessageBodyMember]
public string Result;
}
[MessageContract(IsWrapped = true)]
public class ServiceRequest
{
[MessageBodyMember]
public int A { get; set; }
[MessageBodyMember]
public int B { get; set; }
[MessageBodyMember]
public int C { get; set; }
[MessageBodyMember]
public string D { get; set; }
[MessageBodyMember]
public string E { get; set; }
[MessageBodyMember]
public string F { get; set; }
[MessageBodyMember]
public string G { get; set; }
[MessageBodyMember]
public string H { get; set; }
[MessageBodyMember]
public int I { get; set; }
}
[ServiceContract]
public interface IService
{
[OperationContract]
ServiceResponse Process(ServiceRequest request);
}
public class Service : IService
{
public ServiceResponse Process(ServiceRequest request)
{
return new ServiceResponse { Result = "OK" };
}
}
数据源-配置为向WCF终结点返回具有有效URL的XML
数据集XML查询1(实际上效果很好)
<Query>
<Method Name="ServiceRequest" Namespace="http://tempuri.org/">
<Parameters >
<Parameter Name="A"><DefaultValue>1</DefaultValue></Parameter>
<Parameter Name="B"><DefaultValue>2</DefaultValue></Parameter>
<Parameter Name="C"><DefaultValue>3</DefaultValue></Parameter>
<Parameter Name="D"><DefaultValue>4</DefaultValue></Parameter>
<Parameter Name="E"><DefaultValue>5</DefaultValue></Parameter>
<Parameter Name="F"><DefaultValue>6</DefaultValue></Parameter>
<Parameter Name="G"><DefaultValue>7</DefaultValue></Parameter>
<Parameter Name="H"><DefaultValue>8</DefaultValue></Parameter>
<Parameter Name="I"><DefaultValue>9</DefaultValue></Parameter>
<Parameter Name="J"><DefaultValue>10</DefaultValue></Parameter>
</Parameters>
</Method>
<SoapAction>
http://tempuri.org/IService/Process
</SoapAction>
</Query>
这是通过电线…
数据集XML查询2(不工作)
<Query>
<Method Name="ServiceRequest" Namespace="http://tempuri.org/">
<Parameters >
<Parameter Name="SomeId1"><DefaultValue>1</DefaultValue></Parameter>
<Parameter Name="SomeId2"><DefaultValue>2</DefaultValue></Parameter>
<Parameter Name="SomeId3"><DefaultValue>3</DefaultValue></Parameter>
<Parameter Name="SomeId4"><DefaultValue>4</DefaultValue></Parameter>
<Parameter Name="SomeId5"><DefaultValue>5</DefaultValue></Parameter>
<Parameter Name="SomeId6"><DefaultValue>6</DefaultValue></Parameter>
<Parameter Name="SomeId7"><DefaultValue>7</DefaultValue></Parameter>
<Parameter Name="SomeId8"><DefaultValue>8</DefaultValue></Parameter>
<Parameter Name="SomeId9"><DefaultValue>9</DefaultValue></Parameter>
<Parameter Name="SomeId10"><DefaultValue>10</DefaultValue></Parameter>
</Parameters>
</Method>
<SoapAction>
http://tempuri.org/IService/Process
</SoapAction>
</Query>
看看10号左右
数据集XML查询2(fubar)
<Query>
<Method Name="ServiceRequest" Namespace="http://tempuri.org/">
<Parameters >
<Parameter Name="ZUserId"><DefaultValue>1</DefaultValue></Parameter>
<Parameter Name="YHisId"><DefaultValue>2</DefaultValue></Parameter>
<Parameter Name="XHerId"><DefaultValue>3</DefaultValue></Parameter>
<Parameter Name="AYourId"><DefaultValue>4/DefaultValue></Parameter>
<Parameter Name="BStrippedZebraId"><DefaultValue>5</DefaultValue></Parameter>
<Parameter Name="MyId1"><DefaultValue>6</DefaultValue></Parameter>
<Parameter Name="MyId10"><DefaultValue>7</DefaultValue></Parameter>
<Parameter Name="MyId01"><DefaultValue>8</DefaultValue></Parameter>
<Parameter Name="FooBarId"><DefaultValue>9</DefaultValue></Parameter>
</Parameters>
</Method>
<SoapAction>
http://tempuri.org/IService/Process
</SoapAction>
</Query>
你看?????