异步结果为空,但数据存在于响应中

时间:2014-10-30 10:02:18

标签: c# web-services soap

我尝试使用异步方法使用Web服务。我已经使用它的WSDL来创建一个客户端并像这样调用metod:

public static GetStockResponse GetResult()
    {
        var client = new ServiceSoapClient();
        var inItems = new ArrayOfItemNo();
        inItems.Add(new ItemNoRow { ItemNo = "0000001350" });
        Task<GetStockResponse> task = client.GetStockAsync(inItems, "034");
        task.Wait();
        return task.Result;
    }

在提琴手中,我可以看到状态为200的电话

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body>
<GetStockRequest xmlns="http://www.unikum.se/pws"
                 xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <ItemNo>
    <ItemNoRow>
      <ItemNo>0000001350</ItemNo>
    </ItemNoRow>
  </ItemNo>
  <StoreID>034</StoreID>
</GetStockRequest>

回复:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>
<GetStockResponse xmlns="http://www.unikum.se/pws">
  <Items>
    <Item>
      <ItemNo>0000001350</ItemNo>
      <DeliveryTimeText>4-6 veckor</DeliveryTimeText>
      <DeliveryDays>42</DeliveryDays>
      <Stores>
        <Store>
          <StoreID>034</StoreID>
          <NotInERP>N</NotInERP>
          <InStockQty>2</InStockQty>
          <InShowRoom>N</InShowRoom>
        </Store>
      </Stores>
    </Item>
  </Items>
</GetStockResponse>

但是任务(task.Result)的结果是空的。它是一个GetStockResponse,但所有值都为空。

为什么呢?一切似乎都是正确的还是没有?

1 个答案:

答案 0 :(得分:0)

好吧,使用服务所有者提供的其他一些方法进行的更多测试清楚地表明它们没有遵循自己的WSDL中定义的响应结构。我可以看到,在一个更简单的测试中,他们部分遵循WSDL结构,我得到了正确的值回到那些特定的属性,而不是那些不同的。所以现在我可以更清楚地指出错误并返回&#34;请修复此问题,否则&#34;回应服务提供商。