2010-11-22 131 views
0

我正在编写一个应用程序来使用SOAP服务。工作流程是这样的:SOAP服务客户端,“无更新”

为了拉从SOAP服务器(请求),可与变化SOAP服务器 POST请求/响应(响应顺序)从服务器 请求PO变更(要求变更订单)

第三方服务器已经为我们建立了测试环境。第一件事 我想要做的是请求并从服务器下载订单。但似乎问题是,我只能下载/拉每个应用程序的订单一次。第一次请求订单后,我将得到异常:“System.Web.Services.Protocols.SoapException:无订单更新”。如果我创建另一个应用程序做同样的事情,它将能够再次请求订单,但只能一次。有没有我可以设置/配置的地方,这样我的应用程序就可以下订单,而不管它是否是新订单,还是与服务器端有关?

测试代码,我拉顺序:

/// <summary> 
    /// Used by supplier to check Order 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    private void btnRequestPO_Click(object sender, EventArgs e) 
    { 
     string t_return; 
     SupplierServices supplierServices = new SupplierServices(); 

     LoginDetails lgDetails = new LoginDetails(); 
     lgDetails.UserName = "user"; 
     lgDetails.Password = "password"; 
     supplierServices.LoginDetailsValue = lgDetails; 

     RequestPurchaseOrder requestPO = new RequestPurchaseOrder(); 
     requestPO.SupplierCode = "1234"; 
     try 
     { 
      Order returned_order = supplierServices.SupplierRequestPO(requestPO); 
      if (returned_order != null) 
      { 
       t_return = returned_order.ToString(); 
       MessageBox.Show(t_return); 
      } 
      else 
       MessageBox.Show("Returned order is empty!"); 
     } 
     catch (Exception ex) 
     { 
      String responseFromServer = ex.Message.ToString() + " "; 
      if (ex!= null) 
      { 
       MessageBox.Show(responseFromServer); 
      } 
     } 
+0

一些注意事项:`ex.Message`已经是一个字符串,所以你不需要`ToString`。如果`ex == null`,那么你将在前一行抛出`NullReferenceException`,所以你不需要检查`ex!= null`。你也不应该使用`ex.Message` - 如果你需要了解这个异常,那么你想`ex.ToString()`向你展示一切。 – 2010-11-22 23:46:09

回答

2

这似乎从你的代码,响应“无​​订单的最新状态”正在从第三方返回。你将不得不问他们为什么会出现这种错误。

+0

谢谢,这实际上是服务器假设如何工作。我需要他们为我生成更多测试订单。 – 2010-11-23 00:27:00