Ich möchte in meiner kleinen GUI anzeigen, ob die Website online oder offline ist. Mein tatsächlicher Code kann überprüfen, ob eine Website online ist, und dies wird in der Schriftfarbe grün angezeigt, aber wenn eine Website offline ist, stürzt meine GUI ab. HierErmitteln, ob die Website online ist
ist der Code:
private void button1_Click(object sender, EventArgs e)
{
HttpWebRequest Movie2kStatus = (HttpWebRequest)WebRequest.Create("https://www.xxxxxxx.sh");
Movie2kStatus.AllowAutoRedirect = false;
prgb_Status.Value = 15;
HttpWebRequest Movie4kStatus = (HttpWebRequest)WebRequest.Create("https://www.xxxxxxxxxx.tv");
Movie4kStatus.AllowAutoRedirect = false;
prgb_Status.Value = 20;
HttpWebRequest FreestreamStatus = (HttpWebRequest)WebRequest.Create("https://xxxxxxxx.to/de/");
FreestreamStatus.AllowAutoRedirect = false;
prgb_Status.Value = 35;
HttpWebRequest OpenloadStatus = (HttpWebRequest)WebRequest.Create("https://www.xxxxx.co");
Movie2kStatus.AllowAutoRedirect = false;
prgb_Status.Value = 40;
HttpWebRequest DatenbankStatus = (HttpWebRequest)WebRequest.Create("http:///www.xxxx.de");
Movie2kStatus.AllowAutoRedirect = false;
prgb_Status.Value = 55;
HttpWebResponse httpRes1 = (HttpWebResponse)Movie2kStatus.GetResponse();
prgb_Status.Value = 60;
HttpWebResponse httpRes2 = (HttpWebResponse)Movie4kStatus.GetResponse();
prgb_Status.Value = 75;
HttpWebResponse httpRes3 = (HttpWebResponse)FreestreamStatus.GetResponse();
prgb_Status.Value = 80;
HttpWebResponse httpRes4 = (HttpWebResponse)OpenloadStatus.GetResponse();
prgb_Status.Value = 95;
HttpWebResponse httpRes5 =
(HttpWebResponse)DatenbankStatus.GetResponse(); // <--- CRASH
if (httpRes1.StatusCode == HttpStatusCode.OK)
{
lbl_StatusMovie2k.ForeColor = Color.Green;
tbx_StatusMovie2K.ForeColor = Color.Green;
tbx_StatusMovie2K.Text = "Online";
}
else
{
lbl_StatusMovie2k.ForeColor = Color.Red;
tbx_StatusMovie2K.ForeColor = Color.Red;
tbx_StatusMovie2K.Text = "Offline";
}
httpRes1.Close();
if (httpRes2.StatusCode == HttpStatusCode.OK)
{
lbl_StatusMovie4K.ForeColor = Color.Green;
tbx_StatusMovie4K.ForeColor = Color.Green;
tbx_StatusMovie4K.Text = "Online !";
}
else
{
lbl_StatusMovie4K.ForeColor = Color.Red;
tbx_StatusMovie4K.ForeColor = Color.Red;
tbx_StatusMovie4K.Text = "Offline !";
}
httpRes2.Close();
if (httpRes3.StatusCode == HttpStatusCode.OK)
{
lbl_StatusFreestream.ForeColor = Color.Green;
tbx_StatusFreestream.ForeColor = Color.Green;
tbx_StatusFreestream.Text = "Online !";
}
else
{
lbl_StatusFreestream.ForeColor = Color.Red;
tbx_StatusFreestream.ForeColor = Color.Red;
tbx_StatusFreestream.Text = "Offline !";
}
httpRes3.Close();
if (httpRes4.StatusCode == HttpStatusCode.OK)
{
lbl_StatusOpenload.ForeColor = Color.Green;
tbx_StatusOpenload.ForeColor = Color.Green;
tbx_StatusOpenload.Text = "Online !";
}
else
{
lbl_StatusOpenload.ForeColor = Color.Red;
tbx_StatusOpenload.ForeColor = Color.Red;
tbx_StatusOpenload.Text = "Offline !";
}
httpRes4.Close();
if (httpRes5.StatusCode == HttpStatusCode.OK)
{
lbl_StatusDatenbank.ForeColor = Color.Green;
tbx_StatusDatenbank.ForeColor = Color.Green;
tbx_StatusDatenbank.Text = "Online !";
}
if (httpRes5.StatusCode == HttpStatusCode.Unauthorized || httpRes5.StatusCode == HttpStatusCode.ServiceUnavailable)
{
lbl_StatusDatenbank.ForeColor = Color.Red;
tbx_StatusDatenbank.ForeColor = Color.Red;
tbx_StatusDatenbank.Text = "Offline !";
}
prgb_Status.Value = 100;
httpRes5.Close();
}
Führen Sie den Aufruf async aus Ihrem UIhread und behandeln Sie einfach das Ergebnis in Ihrem UIhread – Stefan
Alles, was Sie von Ihrem Ende beweisen können ist, ob _you_ kann die Website erreichen, nicht unbedingt, ob es _offline_ – MickyD
Bitte respektieren Sie unsere Zeit und immer minimal Beispiel: Ihr Code kann um fast 70% reduziert werden und enthält immer noch die gleiche fehlerhafte Logik. –