ASP.Netで書かれたWebサイトがまだ生きているかどうかをテストする方法は?
-
07-07-2019 - |
質問
Webサイトがまだ生きているかどうか、およびそのWebサイトがデータベースから読み取ることができるかどうかをテストするために起動できる単純なWinFormsアプリを作成する必要があります。
"(HttpWebResponse)myHttpWebRequest.GetResponse()"全体を使用していますサイトが生きているかどうかをテストするためのc#でのことですが、「レスポンス」に何かを書くために私のウェブサイトでテストページを取得する方法に迷っています。データベースへの接続をテストできたことを示します。
ここに私のWinforms側のサンプルコードがあります(MSDNから引用):
private void CheckUrl() { try { HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.google.com"); HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); myHttpWebResponse.Close(); label1.Text = myHttpWebRequest.Address.AbsoluteUri; } catch (WebException e) { label1.Text = "This program is expected to throw WebException on successful run." + "\n\nException Message :" + e.Message; if (e.Status == WebExceptionStatus.ProtocolError) { label1.Text = String.Format("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode); label2.Text =String.Format("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription); } } catch (Exception e) { label1.Text = e.Message; } }
上記のコードに戻るために、ウェブフォーム側で何か助けが欲しいと思っていました。
皆さんが提供できる支援に感謝します。
- リチャード
解決
サイトに障害が発生するとどうなりますか? 500ステータスコードまたはタイムアウトを返しますか?
別の見方:成功した場合、常に期待されることを行いますか?
WebアプリでURLを呼び出して、200応答コードを返すか、正常に動作している場合は応答にHTMLマークアップが含まれていることがわかっている場合があります。
winformでこのURLを呼び出して、予想されるマークアップについてResponse.statusまたは出力バッファーのテキストを調べます。また、httprequestでタイムアウトを作成する必要があります。タイムアウト内にページがロードされない場合、Web例外が発生し、サイトが失敗していることがわかります。
また、予算がある場合は、gomez.comのような外部監視サービスがあり、これを自動化してサイトの可用性に関するレポートを提供できます。
他のヒント
IAMALIVEというプロジェクト内にWebサービスを作成し、単一の文字を返すようにすることができます。
WinFormsエリアで、前述のWebServiceを使用します。それが機能する場合、サイトは稼働しています。
パプチーノの答えの要点: [WebMethod]
属性でマークすることで、WebFormsページのC#コードビハインドに埋め込まれたWebサービスを実際に作成できます。これらはサーバーだけでなく、Webアプリケーション内に存在します。
ウェブフォームページでデータベース接続を開き、シンプルで影響の少ないものを実行します。例:
select SystemTableId from dbo.[SystemTable] where SystemTableId = 1
SystemTableは単一行のテーブルです。
何らかの理由でページが例外をスローした場合、Response.Write例外メッセージを、そうでない場合はResponse.Write(" SUCCESS")または同様のメッセージ。