http状态代码500 /网页停止刷新

时间:2013-04-30 01:34:16

标签: c# javascript html vbscript

我们有一个内部网页面,用于在我们网站周围的监视器上显示信息。此网页每15秒自动刷新一次。

所有这些都可以找到,直到数据库服务器出现问题并且网页出现问题并且不再获得连接,并且我们通常会收到HTTP 500错误。

我的解决方案是编写一个C#应用程序来检查网页的HTTP状态,如果发现HTTP 500关闭浏览器然后再次重新打开并显示网页。 此应用程序使用的计时器事件设置为30秒。

我遇到的问题是我的C#应用​​程序并不总是收到500错误,或者任何其他可能导致网页停止刷新的错误。

下面是我编写的用于尝试检查错误的代码

public static void Check_Process()
{
    Console.Write("checking started at {0}" + Environment.NewLine, DateTime.Now);
    try
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(txt_url);

        response = (HttpWebResponse)request.GetResponse();
        // Read the error stream first and then wait.
        string error = someProcess.StandardError.ReadToEnd();


        Console.Write(error);
    }
    catch (WebException e)
    {
        if (e.Status == WebExceptionStatus.ProtocolError)
        {
            response = (HttpWebResponse)e.Response;

            if ((int)response.StatusCode == 500)
            {
                Console.Write((int)response.StatusCode + " error found at {0}" + Environment.NewLine, DateTime.Now);
                Close_webpage();
                Start_webpage();
            }
            else if (response.StatusCode != HttpStatusCode.OK)
            {
                Console.Write((int)response.StatusCode + " error found at {0}" + Environment.NewLine, DateTime.Now);
                Close_webpage();
                Start_webpage();

            }
        }
    }
}

目前使用

从应用程序中加载网页
public static void Start_webpage()
{
    startInfo.WindowStyle = ProcessWindowStyle.Normal;
    startInfo.FileName = "IExplore.exe";
    startInfo.Arguments = txt_url;
    someProcess = Process.Start(startInfo);
}

希望有人可以指出我出错的地方,或更好的方法,因为目前我们必须手动刷新/重新加载网页。

1 个答案:

答案 0 :(得分:0)

你是否重新加载了一页?

你如何使用ajax调用呢?你可以将它放在setInterval / setTimeout中,然后处理成功/失败的响应 - 应该使它能够抵抗服务失败,并且更加用户友好。

是的,你可能应该消除500. Try / catch {msg(“OMG,数据库无法访问!”)}类型的东西:)

啊,您的代码问题可能是您的代码检查数据库及其正常,但第500个用户连接,您的页面刷新失败。