2011-10-21 21 views
0

私はASP.NETページを持っています。このページでは、サーバー上でファイルを生成するコンソールアプリケーションを起動できます。 「ファイルを要求しています」というメッセージが表示されたら、ファイルが使用可能になるとすぐにファイルのFile.Existsがtrueを返します。要求ファイルメッセージはファイルのリンクに変更されます。ファイルがASP.NETに存在するのを待ちます

これはASP.NETで簡単に達成できますか?

+0

簡単にすべての3つの中であなたの能力に依存したファイルへのリンクを作成することができ、完全なイベント、それをクリアすることができますエリア。バックエンドのWebメソッドにjavascript ajaxを呼び出す必要があります。このメソッドはコンソールアプリケーションを起動し、終了するのを待ってから、javascript ajax呼び出しのコールバックにステータスを返します。 – JaredMcAteer

答えて

2

Webページで、ファイルが生成されたかどうかをチェックする特定のWebMethodへのJSON呼び出しを実装します。

あなたは呼び出し元の関数にメッセージを追加し、また

function ddlLeaveChanged(sender, e) { 


if (leaveTypeId != '-1' && dateFrom != '' && leaveStatusId != '-1') { 
    $('#lblMessage').show(); 
    $.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     url: WebServiceUrl + 'YourMethod', 

     success: FunctionSuccedded, 
     error: FunctionFailed 
    }); 
} 

function FunctionsSuccedded(result, e) { 
if (result) { $('#lblMessage').hide(); } 

}

0

ASP.NETと他のプラットフォームとの大きな違いはありません。

  1. トリガーリンクがクリックされたときにAJAX呼び出しを行います。
  2. 呼び出しを処理するサーバーサイドのコードは、外部プロセスを起動してファイルを生成し、完了するまで待機します。
  3. ファイルが実際に存在することを確認したら、AJAX呼び出しに意味のあるメッセージ(つまり、ファイルへのリンクを構築するのに十分な情報が含まれている)を返信します。
1

これは組み合わせ使用して達成することができる:に(setIntervalを使用して)毎x秒をトリガすることができる

JavaScript関数をAJAXを使ってWebメソッドをトリガーファイルが存在します。

上記のリンクを確認してください。これらは、この作業を行うために必要なものでなければなりません。

1

ファイルシステムを一緒に避けたい場合は、データベースフィールドをキーオフすることもできます。リンク先をクリックすると、ファイルの作成が保留中であることを示す何らかの種類のデータベーステーブルにエントリが作成されます。ステータスが更新されている場合サーバー側のコードは同じキーを更新し、データストアにもURLを持つので、作成されたファイルの状態とデータストアのリンクを確認するだけで済みます。これにより、ファイル作成の履歴が得られますが、ASP.NETの観点からは、ファイルが作成されたかどうかを判断するためにのみデータアクセスコードに頼ることになります。

関連する問題