默认情况下,Web服务调用是同步还是异步?如何通过服务或客户确定同步性?
我的代码类似于以下内容:
try
{
string result = MakeWebServiceCall_1(); // this is a third party webservice
MakeWebServiceCall_2(result); // another webservice which must happen *after* the first one is complete
}
catch()
{
SetStatus(Status.Error); // this calls my own stored procedure
throw;
}
SetStatus(Status.Sucess);
在上文中,SetStatus
正在写入第三方Web服务从中读取的相同表。如果我在两个Web服务调用完成之前更改状态,它将会变得很乱,我将被解雇。我如何知道/确保webservice调用是同步的?
答案 0 :(得分:2)
根据MSDN,当您添加对Web Service的引用时,它将实现在代理类中同步和异步调用Web Service的方法。你只需要确保拨打正确的电话。
使用“添加Web引用”对话框找到要供应用程序访问的XML Web服务后,单击“添加引用”按钮将指示Visual Studio将服务描述下载到本地计算机,然后生成所选XML Web服务的代理类。代理类将包含用于调用每个公开的XML Web服务方法的方法,同步和异步。 Source