Frage

Ich brauche eine einfache WinForms-Anwendungen zu schreiben, die zu testen, werden gefeuert, wenn eine Website noch am Leben ist und dass die Website in der Lage, aus einer Datenbank zu lesen.

Ich bin mit dem ganzen „(HttpWebResponse) myHttpWebRequest.GetResponse ()“, was in c # zu testen, ob die Seite am Leben ist, aber ich bin ein verlieren, wie eine Testseite in meiner Website zu bekommen, etwas zu dem schreiben „Response“, um anzuzeigen, dass es in der Lage war, zu testen, eine eigene Verbindung zur Datenbank ist.

Hier ist der Beispielcode für meine WinForms-Seite (zerrissen von dem 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;
  }
}

Ich habe gehofft, für etwas Hilfe auf der Webformular Seite der Dinge zu dem obigen Code zurückzukehren.

Vielen Dank für jede Hilfe, die Sie Leute zur Verfügung stellen können.

  • Richard
War es hilfreich?

Lösung

Was passiert, wenn Ihre Website nicht funktioniert? Ist es gibt einen 500-Statuscode oder Timeout?

Eine andere Möglichkeit, um es zu betrachten: macht es immer etwas tun zu erwarten, wenn es gelingt,

Sie können eine URL in Ihren Web-App aufrufen, die Sie wissen, wird entweder das Rückantwortcode 200 oder wird einige erwartete HTML-Markup in der Antwort haben, wenn die Dinge funktionieren gut.

Haben Sie Ihren winform Aufruf diese URL und untersuchen Sie den Response.Status oder den Text in dem Ausgangspuffer für Ihre erwartete Markup. Sie sollten auch ein Timeout in Ihrem Httprequest erstellen. Wenn die Seite innerhalb der Timeout nicht geladen werden, erhalten Sie eine Web-Ausnahme erhalten und wissen Sie die Website versagt.

Auch wenn Sie das Budget haben, gibt es externe Monitoring-Dienste wie gomez.com, die diese automatisieren und bieten vor Ort Verfügbarkeit berichten.

Andere Tipps

Sie können einen Webservice innerhalb des Projekts genannt IAMALIVE schaffen und haben es ein einzelnes Zeichen zurück.

Auf Ihrem WinForms Bereich, Konsumieren sagte WebService und wenn es funktioniert, Ihre Website lebt.

Im Wesen der Papuccino Antwort: Sie können tatsächlich Web-Services erstellen, die in der C # -Code-behind Ihrer WebForms Seiten eingebettet werden, indem sie mit dem Attribut [WebMethod] Markierung. Diese werden residieren in der Web-Anwendung, nicht nur der Server.

hat Ihre Webformular Seite eine Datenbank-Verbindung öffnen und etwas Einfachen / Low-Impact ausführen, z.

select SystemTableId from dbo.[SystemTable] where SystemTableId = 1

, wo Systemtabelle ist eine einzeilige Tabelle.

Wenn die Seite eine Ausnahme aus irgendeinem Grunde wirft, Response.Write die Ausnahmemeldung, sonst Response.Write ( „SUCCESS“) oder ähnliches.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top