私が達成しようとしているもの:asp.netページのコードの背後にある、長時間実行されているビジネスロジックメソッドを呼び出したいプロセスを非同期で実行させます。プロセスには、いくつかのビジネスオブジェクトがパラメータとして含まれています。プロセスが開始されると、ユーザーには結果が電子メールで送信されることを示す画面が表示されます。ここで重要なことは、ユーザーがプロセスが完了するまで待つ必要がないことです。これを行う最善の方法は何ですか?プロセスは既に存在し、私のプロジェクトで動作しますが、ページは実行中にハングアップします。ASP.NETはバックグラウンドで長時間実行されるメソッドを実行します
元は、メソッドをWebサービスに移動することを考えました。私は、シグネチャを同じに保ち、Webサービスビジネスオブジェクトを渡すつもりだったが、名前空間エラーが発生しています。具体的には、引数の型MyBusinessLogic.MyObjectは、My WebサイトとWebサービスが同じDLLを参照していても、MyWebService.MyObjectパラメータ型に割り当てられません。なぜ私はそれが起こっている得るが、私はそれの周りに道が必要です。
ソリューションの実際の実装は非常に重要ではありません。私が気づいていないASP.NETでメソッド呼び出しを非同期的に実行する方法があったらすばらしいでしょう。そうでない場合は、XMLパラメータリストを送信し、それをWebサービスのビジネスオブジェクトの私の唯一のオプションとして解析しますか?
新しいスレッドを起動してプロセスを実行し、応答を返してユーザーを情報ページにリダイレクトするのはなぜですか? http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx –
ASP.Netではこのようなスレッディングはお勧めしません。正しい手順は、非同期ASP.Netページメソッドを使用することです。詳細はこちら:http://msdn.microsoft.com/en-us/library/system.web.ui.pageasynctaskaspx – Jeremy