2011-01-27 16 views
0

私はいくつかのページからページソースを取得するためのタイマーを設定し、昨日のバージョンでいくつかの変更が発生した場合はそれを比較したいと思います。 ロジックを使って1日に1ページを呼び出す必要がありますか?私のプログラムは単なるウェブページであり、24時間ごとにリクエストを送信できません。リクエストを送信して変更が発生したかどうかを確認するにはどうすればよいですか?ASP.NET MVCを使用して別のWebページから「コンテンツ=ソースコード」を1日に1回取得する方法は?

答えて

2

Webアプリケーションは通常、要求に応答し、起動して自分自身の要求(必要なもの)を実行しないため、Webアプリケーションを使用しないでください。

通常の.NETアプリケーションが必要です。それはこの他のウェブサイトに電話をかけるコンソールアプリケーションである可能性があります。ジョブを行うには、WebClientクラスなどを使用できます。

すべての作業が完了したら、Windowsスケジューラを使用して、必要な間隔でタスクをスケジュールできます。

コンソールアプリケーションからWebアプリケーションと通信する必要がある場合は、同じことを行うことができます。つまり、コンソールアプリケーションから特定のページまたはハンドラにリクエストします(他のウェブサイト)。 Webアプリケーションがリクエストを受信すると、これを実行して必要な処理を行うことができます。

いくつかのデータベーステーブルを更新するだけであれば、コンソールアプリケーションから行うこともできます。

(WebClientを使用する)コンソールアプリケーションをカスタムブラウザと考えてください。あなたは必要なURLを呼び出すことができ、他の側のWebアプリケーションはその呼び出しをブラウザが行ったかのように見ます。したがって、あなたは特殊な "ブラウザ"を使用して、あなた自身のウェブサイトと同様に他のウェブサイトを呼び出すことができます。

+0

あなたはこのアプリケーションを常にサーバー上で実行し、24時間ごとにリクエストを行いますか?あなたはabotのWindowsアプリケーションを話しているのですか?それは良い方法です!私は似たように思っていましたが、いつもウェブアプリケーションについて考えました。私は他のウェブページのすべての変更を見たいと思います。どのように私は通常の.netアプリケーションから.net webapplicationにデータを転送できますか? –

+1

これは通常のC#.NETコンソール(またはWinforms)アプリケーションです。その後、タスクスケジューラを使用して、毎日(特定の時間に)無期限に実行するようにスケジューリングできます。この目的のためには、コンソールアプリケーションはリソースが少なくて済むだけでなく、誰もアプリケーションウィンドウを表示することはない(たとえそれが表示されるのを待っていても、ウィンドウは表示されませんが、タスクマネージャで実行されているタスク)とコンソールアプリケーションの消費量も少なくなります。あなたに他の質問を含めるために私の答えを編集します –

関連する問題