2009-03-03 9 views
1

小さなウィンドウアプリケーションを作成したいときは、自動的にサイトに移動し、実行中の罰金があるかどうかを確認します。動作していないか、エラーが発生しているかどうかを確認します。 "例:404、ネットワークエラー、それは私の画面にメッセージを表示します。私のサイトはダウンしていますか、動作していないか、エラーがありますか?

どの.NET言語を使用してプログラム的にエラーが発生していることが分かりますか?

+0

もちろん、プログラムはあなたがいるネットワークの慈悲に任されます。 – Terry

答えて

7

WebClientで行うのはかなり簡単です。それはこのようになります:

WebClient client = new WebClient(); 
    try 
    { 
     string response = 
      client.DownloadString("http://www.example.com/tester.cgi"); 

     // We at least got the file back from the server 

     // You could optionally look at the contents of the file 
     // for additional error indicators  
     if (response.Contains("ERROR: Something")) 
     { 
      // Handle 
     } 
    } 
    catch (WebException ex) 
    { 
     // We couldn't get the file. 
     // ... handle, depending on the ex 
     // 
     // For example, by looking at ex.Status: 
     switch (ex.Status) 
     { 
      case WebExceptionStatus.NameResolutionFailure: 
       // ... 
      break; 
      // ... 
     } 
    } 

あなたは、定期的にチェックを行うことがTimerTickイベントか何かにそれをフックアップができます。

+0

また、適切なタイムアウト期間を設定できるように、DownLoadStringAsync()も使用する必要があります。 –

2

HttpWebRequestを使用して、WebExceptionのtry catchでラップします。例外オブジェクトのエラーコードによってコードが提供されます。 404などです.500の場合は、メッセージを印刷できます。

2

System.Net.WebClientオブジェクトを使用します。 HttpWebRequestより使いやすいです。それはURLの内容を文字列にダウンロードする "DownloadString"メソッドを持っています。このメソッドは、サーバーが500を返した場合にもWebExceptionエラーをスローする可能性があります。他のエラーの場合は、文字列を解析してキーワードを探すことができます。

5

なぜ気になるのですか?それはあなたのファイアウォールの外側からあなたのサイトをテストし、それは問題の多種多様を検出することができます)

1:あなたはこのことについての素晴らしい事はあるRedAlert

などのプロバイダから安いのためのよりよい解決策を得ることができます。

2)公平な第三者機関であるため、SLAのために必要な場合に稼働時間を証明することができます。

3)小型プレミアムのためには事は試してみて、問題を診断することができます。

4)問題が発生したときにページを送信するか、電子メールで送信できます。

5)新しいサーバーを購入する必要はありません。

そうねえ、私はみんなのための広告のように聞こえるが、私は彼らのために働くか、キックバックを得ることはありません約束します。私はサーバーのサービスに満足しています。

はところで:私は、価格設定をチェックし、それは、サイト/月あたり約$ 20。だから、おそらくサービスの1年間は、それを自分で構築するよりも短時間で支払うことができます。

+0

なぜ気になるのですか? InternetSeerのようなプロバイダーから無料で同じソリューションを入手できます。地獄、Googleのウェブマスターツールでさえ、(どこでも洗練されたものではないが)同様のサービスを提供する。私は他の人が同じサービスのために0ドルを請求したときに、1ヶ月あたり20ドルのサイトを正当化するものは見当たりません。 –

+1

私は「小さなウィンドウアプリケーションを作成したい...」という質問をしました。何かをする方法を学びたいと思っていました。サービスを実行できる有料/無料サービスは見つかりませんでした。 – Dscoduc

+0

@ Dscoduc、yesあなたが正しいのですが、私が望んでいたのは、それを私の自己にする方法を学ぶことですが、彼が知っていることを助けてくれた誰にも感謝します。私は新しいものやサービスを学んだので、ここでは答えが素晴らしいよ:) –

1

あなたがこれを行う場合は、データベースのような特別なサブシステムを、行使する特別なページ、ファイルIOなどを作成し、プレーンテキスト、HTMLないで結果を提供。これにより、返されたデータをより簡単に解析できるようになります。また、404または500のHTTPエラーが発生しないDBやIOの問題なども検出されます。

0

サイトがダウンしているときにメール/ SMSを受信したい場合は、Are My Sites Upウェブベースのソリューションをお試しください。

1

Adventnetはのアプリケーションマネージャ(http://www.manageengine.com/products/applications_manager/)、それは5台のモニターのために自由である、優れたモニタリング機能

あなたはなど、送信メールのような障害が発生した場合に行うことができるアクションを設定できますを提供してみてください

3

同じ機能を実行したいと思ったのは、まず第三者のソリューションを調べました。無料で、かなり正確なサービスの1つはMonitorUsです。

しかし、自分でビルドしたい場合は、1つの推奨事項があります。代わりにGETリクエストのHEADリクエストを使用することを検討してください:

HEADメソッドは、サーバが応答して メッセージボディを返してはならないことを除いて を取得することと同じです。 HEAD要求に応答してHTTP ヘッダーに含まれる メタ情報 は、GET要求に応答して送信された情報 と同一である必要があります(SHOULD)。 エンティティボディに関するメタ情報の取得には、 を含めることができます。 エンティティボディ自体を転送せずに要求によって暗示されます。 このメソッドは、 ハイパーテキストリンクの有効性、 アクセシビリティ、最近の の変更をテストするためによく使用されます。 w3.org

ここにはa link to Peter Bromberg'sのC#でヘッドリクエストを実行する方法が記載されています。

関連する問題