异步WCF服务阻止ASP应用程序

时间:2011-02-26 16:49:31

标签: asp.net wcf asynchronous blocking

我有一个调用WCF服务的ASP(MVC2)应用程序。该服务需要很长时间,所以我不希望客户端ASP应用程序等待它完成。它将其状态记录在数据库中,并且可供ASP客户端使用 我异步调用服务,但是当我尝试转换到下一页时,我的ASP应用程序仍然挂起。我怀疑是因为线程挂起等待服务回复。 实现此接口的最佳方法是什么,以便ASP应用程序可以继续而不被阻止?

1 个答案:

答案 0 :(得分:0)

如果您不想知道Web服务调用的结果,则不需要异步调用。你需要一种方式(也称为火与忘记)呼叫。将IsOneWay=true添加到OperationContract,例如:

[ServiceContract]
public interface MyServiceContract
{
  [OperationContract(IsOneWay=true)]
  void MyOperation(Data data);
}

单向操作必须返回void。客户端只会等待建立连接并发送数据。它不会等待处理结束。