この問題はさまざまなバリエーションで尋ねられていますが、.net(。async awaitなど)の新しい機能によって実現されています。ASP.NET Webフォームのロングプロセス - ブラウザのタイムアウト
長い実行タスクを持つC#.Net Web Formsアプリケーションがあります。タスクは、csvデータファイルをアップロードし、オブジェクトにシリアライズし、データベースにインポートするユーザーの要求を処理します。タスクは数分かかることがあり、ブラウザは定期的にタイムアウトします。これはユーザビリティの問題を引き起こします。
私は多くのソリューションを見てきましたが、ユーザーはデータをアップロードしてから、バックグラウンドでタスクを実行します。その後、ページはサーバーを断続的に呼び出してタスクのステータスを要求し、ユーザーに進行状況を通知します。
これはどのように達成されたのですか? IISまたはWindowsサービス: - どのようにこれがホストされている
- Windowsサービス
- Webサービス:私はテーブルの上に表示されるオプション?
- 非同期、Await - これは可能性ですか?
コメントありがとうございます。私は実際にプロセスを実行することをどこで提案しますか?私が言ったように、私がAPPで直接行うと、スレッドが縛られ、ブラウザが完了するまでハングします。 – David
新しいスレッドを開始してそのスレッドでプロセスを呼び出すと、メインスレッドはクライアントに戻り、新しいスレッドは処理中で状態を更新することになります。 –
これらのプロセスを進行スレッドの更新を要求するために小さな間隔でプロセスへのajax呼び出しを行います。しかし、私は正しい技術を使用しているとは確信していません。私はこれまで何らかのサービスを利用していなければならないと考えていました。 – David