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