0
  • ASP.Net Web アプリケーションの一部である asmx Web サービスがあります。このWebサービスを非同期で呼び出すイベントベースのアプローチを使用したいと思います。これは可能ですか?これが不可能な場合、代替手段は何ですか?
  • また、'[WebMethod]' 属性で装飾された aspx ページで静的な PageMethod を非同期的に呼び出すことはできますか? 私が持っているページメソッドの例は次のとおりです。

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

非同期とは、クライアント側ではなくサーバー側での非同期を意味します。

4

1 に答える 1

1

Web サイトのサーバー側は、信頼できる方法で非同期に呼び出すことはできません。すべてのスレッドは親スレッドの間のみ有効であるため、サイトが終了して応答に移ったときに非同期スレッドがまだ実行されている場合、これにより親スレッドが終了し、すべての子スレッドの実行が強制的に停止されます。

使用しているアプリケーションが、Web サービスを参照として使用する WinForms または WPF アプリケーションである場合、アプリケーション (親スレッドで実行される) がサービス呼び出しの間、生きていることに依存できるため、非同期的に呼び出すことができます。 . ただし、Web アプリケーションでは、コールバックが配信される前に応答が構築される可能性が非常に高くなります。

于 2012-11-13T18:04:50.487 に答える