尝试使用System.Net.WebRequest检查是否已断开连接

时间:2013-11-15 15:30:57

标签: c# asp.net webrequest

我正在开发一个asp.net和c#的网站,当用户按下按钮时,如果用户没有连接则需要捕获。所以基本上,如果用户已连接,它将加载GetList功能,如果没有,则会出现一条消息。

到目前为止,

代码是......

protected void btnAlphabetical_Click(object sender, EventArgs e)
{
    Session["Online"] = 0;
    CheckConnect();
    if ((int)Session["Online"] == 1) { GetList(); }
    if ((int)Session["Online"] == 0) { Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "alertMessage", "alert('You are currently offline')", true); }
}

protected void CheckConnect()
{
    System.Uri Url = new System.Uri("http://www.mywebsite.com/apicture.jpg?" + DateTime.Now);
    System.Net.WebRequest WebReq;
    System.Net.WebResponse Resp;
    WebReq = System.Net.WebRequest.Create(Url);
    try
    {
        Resp = WebReq.GetResponse();
        Resp.Close();
        WebReq = null;
        Session["Online"] = 1;
    }
    catch
    {
        WebReq = null;
        Session["Online"] = 0;
    }
}

基本上,我们将在线会话值设置为0并调用CheckConnect函数。这得到了一个已经在网站上的jpg,如果可以加载,则将我们的Online变量设置为1.如果找不到它,则将其设置为0.当控制返回到main函数(一个按钮)时,我们取决于在线是什么 - 1或0。

麻烦的是,我不确定这是否与我的系统设置有关,而不是:

  • 当我们在线并获得存在的东西时,它可以正常运行并且触发了GetList
  • 当我们在线并获得不存在的内容(无效的网址)时,它工作正常,我们的消息显示(GetList未被触发)
  • 但是,当我们离线并解雇时,我的浏览器(IE8)只是进入常规的“诊断连接设置”屏幕

这是我的代码,还是IE8的一部分?我不能使用其他浏览器,因为它是我公司使用的浏览器。

感谢。

编辑 - 通用目的是在移动设备上使用。用户将加载页面并进行更改,然后使用按钮。如果正在加载的页面和用户按下按钮之间的连接丢失,我不希望用户丢失他们的更改。

0 个答案:

没有答案