2010-11-22 140 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