服务不可用消息

时间:2011-11-04 08:21:35

标签: asp.net iis

有一个网站,当用户超过1000时,会出现一个名为

的错误
Service unavailable

当系统发出“服务不可用”错误时,我想显示文本。我该怎么办?

(app_offline.htm可以使用,但我想自动化)

3 个答案:

答案 0 :(得分:1)

如果您正在处理ASP.NET,您可以使用自定义文本创建自己的html页面,然后配置web.config文件,更具体地说是customErrors标记,以便在显示时显示该文件503 Http代码被发送到客户端(也就是说,假设IIS正在向浏览器发送503代码)。

希望有所帮助。

干杯。

答案 1 :(得分:0)

这个问题可能有一些可能的原因,

  • 同时连接可能达到时间限制
  • 您的应用池可能无法正常启动

有一篇关于One more reason problem that causes the 'Service Unavailable' error from IIS的有趣文章,可能会让您更好地理解。

答案 2 :(得分:0)

当您声明您正在使用ASP.NET时,您应该使用Page_Error事件处理程序来查看陷阱错误。

由于这往往是在一个项目和许多其他项目中重复代码,我使用一个继承自System.Web.UI.Page的基类并在那里填写处理程序。

例如,所有页面都基于MyBasePage

protected void Page_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();
    this.ErrorRedirect(ex, false);
}

/// <summary>
/// Redirects to a custom error page
/// </summary>
/// <param name="ex">the caught exception</param>
/// <param name="errorCaught">true if the error is handled within a try catch block, false otherwise</param>
protected void ErrorRedirect(Exception ex, bool errorCaught)
{
        /* some logging code here for use by support team */

        if (ex.GetType().FullName == "BusinessObjects.BrokenRulesException" )
        {
            Response.Redirect("ContactHelpdesk.aspx");
        }

        if (errorCaught)
        {
            Response.Redirect("ContactHelpdesk.aspx");
        }
        else
        {
            Response.Redirect("Error.aspx");
        }
}

在此代码中,当我的用户输入的模型数据与指定的规则不匹配时,会抛出“BusinessObjects.BrokenRulesException”,例如邮政编码,密码等,在这种情况下弹出用户帮助页面。

在您的情况下,您可能会查看错误,可能会弹出错误页面。