我正在研究一种独特的解决方案,并且在一天的大部分时间里都遇到了异常情况。
被要求通过SSRS报告调用WCF Web服务时,我根据当前服务配置选择了最佳示例。该解决方案在大多数情况下都有效,但是,我认为我可能正在处理参数有效负载。 ssrs中没有内置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" };
}
}
<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>
<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>
<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>
答案 0 :(得分:0)
回答我自己的问题,以防将来对任何人有帮助。
一旦我按字母顺序在XML中对参数进行排序,所有这些都将组合在一起。可能还有另一种指定参数顺序的方法,但是按字母顺序将它们放在对我有用的位置。