在ASP.Net中异步调用asmx方法?

时间:2012-11-13 16:44:44

标签: asp.net asmx

  • 我有一个asmx Web服务,它是我的ASP.Net Web应用程序的一部分。我想使用基于事件的方法以异步方式调用此Web服务。这有可能吗?如果可以的话怎么样?如果不可能,有哪些替代方案?
  • 另外,我可以用async方式调用用[WebMethod]属性修饰的aspx页面中的静态PageMethod吗?我有一个页面方法的例子是:

        [WebMethod]
    public static SupplierData GetAgeSummary(string supplierId)
    {
        return ABC.Data.SupplierData.GetAgeSummary(supplierId);
    }
    

异步我的意思是服务器端的异步,而不是客户端的异步。

1 个答案:

答案 0 :(得分:1)

无法以可靠的方式异步调用网站的服务器端。由于所有线程仅在父线程的持续时间内处于活动状态,如果您的异步线程在站点完成并继续执行响应时仍在执行,这将终止父线程并且所有子节点将被强制停止执行。

如果您使用的应用程序是使用Web服务作为引用的WinForms或WPF应用程序,则可以异步调用它,因为可以依赖应用程序(在父线程上运行)在服务电话。但是,在Web应用程序中,在回调传递之前很可能会构建响应。