我有一个调用WCF服务的ASP(MVC2)应用程序。该服务需要很长时间,所以我不希望客户端ASP应用程序等待它完成。它将其状态记录在数据库中,并且可供ASP客户端使用 我异步调用服务,但是当我尝试转换到下一页时,我的ASP应用程序仍然挂起。我怀疑是因为线程挂起等待服务回复。 实现此接口的最佳方法是什么,以便ASP应用程序可以继续而不被阻止?
答案 0 :(得分:0)
如果您不想知道Web服务调用的结果,则不需要异步调用。你需要一种方式(也称为火与忘记)呼叫。将IsOneWay=true
添加到OperationContract
,例如:
[ServiceContract]
public interface MyServiceContract
{
[OperationContract(IsOneWay=true)]
void MyOperation(Data data);
}
单向操作必须返回void
。客户端只会等待建立连接并发送数据。它不会等待处理结束。