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

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

我所说的异步是指服务器端的异步,而不是客户端的异步。

4

1 回答 1

1

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

如果您使用的应用程序是使用 Web 服务作为参考的 WinForms 或 WPF 应用程序,则可以异步调用它,因为可以依赖应用程序(在父线程上运行)在服务调用期间保持活动状态. 但是,在 Web 应用程序中,响应很可能会在回调传递之前构建。

于 2012-11-13T18:04:50.487 回答