zoukankan      html  css  js  c++  java
  • IIS配置ASP.NET和服务器错误页

    以下两种方法均为全站出错处理

    方法一:

    1、在Web.config配置文件中<system.web></system.web>中添加<customErrors mode="On" defaultRedirect="404.htm" ></customErrors>节点

    <?xml version="1.0" encoding="utf-8"?>
    
    <!--
      有关如何配置 ASP.NET 应用程序的详细信息,请访问
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    
    <configuration>
    
      <system.web>
    
        <compilation debug="true" targetFramework="4.5" />
    
        <httpRuntime targetFramework="4.5" />
    
        <customErrors mode="On" defaultRedirect="404.htm" >
    
        </customErrors>
    
      </system.web>
    
    </configuration>

    2、添加错误处理页面:ApplicationErroy.aspx

    调用下面的方法:

    protected void DealErroy()
    {   HttpException erroy
    = new HttpException();   string strCode = erroy.ErrorCode.ToString();   string strMsg = erroy.Message;   erroy.HelpLink = "sss";   Response.Write("ErrorCode:" + strCode + "");   Response.Write("Message:" + strMsg);   Response.Write("HelpLink:" + erroy.HelpLink);   Response.Write("Source:" + erroy.Source + "");   Response.Write("TargetSite:" + erroy.TargetSite);   Response.Write("InnerException:" + erroy.InnerException);   Response.Write("StackTrace:" + erroy.StackTrace);   Response.Write("GetHtmlErrorMessage:" + erroy.GetHtmlErrorMessage());   Response.Write("erroy.GetHttpCode().ToString():" + erroy.GetHttpCode().ToString());   Response.Write("erroy.Data.ToString():" + erroy.Data.ToString());
    }

    这种方法不能完整地显示错误信息。

    方法二:

    1、依旧在Web.config配置文件中找到<system.web></system.web>节点

    在该节点中添加<customErrors mode="On" defaultRedirect="ApplicationErroy.aspx" ></customErrors>叶节点

    2、右键添加Global.asax文件,找到Application_Error事件,加入以下代码:

      Exception erroy = Server.GetLastError();
      string err = "出错页面是:" + Request.Url.ToString() + "<br>";
      err += "异常信息:" + erroy.Message + "<br>";
      err += "Source:" + erroy.Source + "<br>";
      err += "StackTrace:" + erroy.StackTrace + "<br>";
      Server.ClearError();
      Application["erroy"] = err;

    3、添加错误处理页面:ApplicationErroy.aspx 加入以下代码:

        Response.Write(Application["erroy"].ToString());

    这种方法能完整地显示错误信息,最好的办法还是两种方法一起用最好。

    另:web.config中<system.web></system.web>的<customErrors mode="On" defaultRedirect="ApplicationErroy.aspx" ></customErrors>叶节点添加以下代码

      <!--访问被禁止-->
      <error statusCode="403" redirect="NoAccess.htm" /> <!--找不到页面--> <error statusCode="404" redirect="FileNotFound.htm" />

    下面添加后的完整外观,可与上面代码进行对比,方便自己明白代码添加到哪里,其中404.htm、NoAccess.htm、FileNotFound.htm

    <?xml version="1.0" encoding="utf-8"?>
    
    <!--
      有关如何配置 ASP.NET 应用程序的详细信息,请访问
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    
    <configuration>
    
      <system.web>
    
        <compilation debug="true" targetFramework="4.5" />
    
        <httpRuntime targetFramework="4.5" />
    
        <customErrors mode="On" defaultRedirect="404.htm" >
          <!--访问被禁止-->
          <error statusCode="403" redirect="NoAccess.htm" />
          <!--找不到页面-->
          <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        
      </system.web>
      
    </configuration>
    1、此处错误代码是用来配置ASP.NET程序错误的代码
    100 : Continue 
    101 : witching Protocols 
    200 : OK 
    201 : Created 
    202 : Accepted 
    203 : Non-Authoritative Information 
    204 : No Content 
    205 : Reset Content 
    206 : Partial Content 
    300 : Multiple Choices 
    301 : Moved Permanently 
    302 : Found 
    303 : See Other 
    304 : Not Modified 
    305 : Use Proxy 
    307 : Temporary Redirect 
    400 : Bad Request 
    401 : Unauthorized 
    402 : Payment Required 
    403 : Forbidden 
    404 : Not Found 
    405 : Method Not Allowed 
    406 : Not Acceptable 
    407 : Proxy Authentication Required 
    408 : Request Time-out 
    409 : Conflict 
    410 : Gone 
    411 : Length Required 
    412 : Precondition Failed 
    413 : Request Entity Too Large 
    414 : Request-URI Too Large 
    415 : Unsupported Media Type 
    416 : Requested range not satisfiable 
    417 : Expectation Failed 
    500 : Internal Server Error 
    501 : Not Implemented 
    502 : Bad Gateway 
    503 : Service Unavailable 
    504 : Gateway Time-out 
    505 : HTTP Version not supported
    
    2、此处错误代码是用来配置IIS服务器错误的代码
    HTTP 400 - 请求无效 
    HTTP 401.1 - 未授权:登录失败 
    HTTP 401.2 - 未授权:服务器配置问题导致登录失败 
    HTTP 401.3 - ACL 禁止访问资源 
    HTTP 401.4 - 未授权:授权被筛选器拒绝 
    HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败
    HTTP 403 - 禁止访问 
    HTTP 403 - 对 Internet 服务管理器 (HTML) 的访问仅限于 Localhost 
    HTTP 403.1 禁止访问:禁止可执行访问 
    HTTP 403.2 - 禁止访问:禁止读访问 
    HTTP 403.3 - 禁止访问:禁止写访问 
    HTTP 403.4 - 禁止访问:要求 SSL 
    HTTP 403.5 - 禁止访问:要求 SSL 128 
    HTTP 403.6 - 禁止访问:IP 地址被拒绝 
    HTTP 403.7 - 禁止访问:要求客户证书 
    HTTP 403.8 - 禁止访问:禁止站点访问 
    HTTP 403.9 - 禁止访问:连接的用户过多 
    HTTP 403.10 - 禁止访问:配置无效 
    HTTP 403.11 - 禁止访问:密码更改 
    HTTP 403.12 - 禁止访问:映射器拒绝访问 
    HTTP 403.13 - 禁止访问:客户证书已被吊销 
    HTTP 403.15 - 禁止访问:客户访问许可过多 
    HTTP 403.16 - 禁止访问:客户证书不可信或者无效 
    HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效 
    HTTP 404.1 - 无法找到 Web 站点 
    HTTP 404 - 无法找到文件 
    HTTP 405 - 资源被禁止 
    HTTP 406 - 无法接受 
    HTTP 407 - 要求代理身份验证 
    HTTP 410 - 永远不可用 
    HTTP 412 - 先决条件失败 
    HTTP 414 - 请求 - URI 太长 
    HTTP 500 - 内部服务器错误 
    HTTP 500.100 - 内部服务器错误 - ASP 错误 
    HTTP 500-11 服务器关闭 
    HTTP 500-12 应用程序重新启动 
    HTTP 500-13 - 服务器太忙 
    HTTP 500-14 - 应用程序无效 
    HTTP 500-15 - 不允许请求 global.asa 
    Error 501 - 未实现 
    HTTP 502 - 网关错误
    
    这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。     
    100 - 继续。 101 - 切换协议。 2xx - 成功 这类状态代码表明服务器成功地接受了客户端请求。 200 - 确定。客户端请求已成功。 201 - 已创建。 202 - 已接受。 203 - 非权威性信息。 204 - 无内容。 205 - 重置内容。 206 - 部分内容。 3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。 302 - 对象已移动。 304 - 未修改。 307 - 临时重定向。 4xx - 客户端错误 发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。 400 - 错误的请求。
    401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: 401.1 - 登录失败。 401.2 - 服务器配置导致登录失败。 401.3 - 由于 ACL 对资源的限制而未获得授权。 401.4 - 筛选器授权失败。 401.5 - ISAPI/CGI 应用程序授权失败。 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。
    403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: 403.1 - 执行访问被禁止。 403.2 - 读访问被禁止。 403.3 - 写访问被禁止。 403.4 - 要求 SSL。 403.5 - 要求 SSL 128。 403.6 - IP 地址被拒绝。 403.7 - 要求客户端证书。 403.8 - 站点访问被拒绝。 403.9 - 用户数过多。 403.10 - 配置无效。 403.11 - 密码更改。 403.12 - 拒绝访问映射表。 403.13 - 客户端证书被吊销。 403.14 - 拒绝目录列表。 403.15 - 超出客户端访问许可。 403.16 - 客户端证书不受信任或无效。 403.17 - 客户端证书已过期或尚未生效。 403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
    404 - 未找到。 404.0 -(无) – 没有找到文件或目录。 404.1 - 无法在所请求的端口上访问 Web 站点。 404.2 - Web 服务扩展锁定策略阻止本请求。 404.3 - MIME 映射策略阻止本请求。
    405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 406 - 客户端浏览器不接受所请求页面的 MIME 类型。 407 - 要求进行代理身份验证。 412 - 前提条件失败。 413 – 请求实体太大。 414 - 请求 URI 太长。 415 – 不支持的媒体类型。 416 – 所请求的范围无法满足。 417 – 执行失败。 423 – 锁定的错误。
    5xx - 服务器错误 服务器由于遇到错误而不能完成该请求。
    500 - 内部服务器错误。
    500.12 - 应用程序正忙于在 Web 服务器上重新启动。 500.13 - Web 服务器太忙。 500.15 - 不允许直接请求 Global.asa。 500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。 500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。 500.100 - 内部 ASP 错误。 501 - 页眉值指定了未实现的配置。 502 - Web 服务器用作网关或代理服务器时收到了无效响应。 502.1 - CGI 应用程序超时。 502.2 - CGI 应用程序出错。application. 503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。 504 - 网关超时。 505 - HTTP 版本不受支持。 常见的 HTTP 状态代码及其原因 200 - 成功。 此状态代码表示 IIS 已成功处理请求。 304 - 未修改。 客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。 401.3 - 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。

    转载于 http://www.cnblogs.com/bingyu/articles/1725033.html 我这里只是简单整理,排版内容。

    上面整理、介绍了这么多的关于怎么去配置自定义错误页的知识,那么,下面我拿出一点点自己的使用经验,高手绕道。

    上图中红框标记的是IIS错误页,也就是服务器发生错误的时候进行配置的错误页,什么时候会出现服务器错误呢?

    比如,http://www.cnblogs.com/yy981420974/ 我博客的地址,如果删除地址后面的74,变成http://www.cnblogs.com/yy9814209/ 此时访问因为服务器找不带资源而报错,当然错误不止这么一种,有很多错误,这里只是举例子。接下来说说自己的一点经验:

    点IIS的错误页进去,看到的应该下面是这样(IIS7.5):

    上面的那种地址不完整错误是服务器找不到资源,代码为404,步骤如下:

    下面是一次做项目中,URL地址不完整测试效果截图:

     以上就是个人转载+整理+小结,如果有转载请注明出处,谢谢。

  • 相关阅读:
    行列转换等经典SQL语句
    [jQuery]使用jQuery.Validate进行客户端验证(中级篇上)——不使用微软验证控件的理由
    深入分析jQuery.prototype.init选择器源码
    浅析jQuery基础框架
    GCC入门 ——-转载
    [转载]在VC中使用 Flash 美化你的程序
    用VS调试 javascript
    如何提高程序性能
    线程安全的懒单例模版类
    各种计算机语言的经典书籍 (转载)
  • 原文地址:https://www.cnblogs.com/yy981420974/p/5584375.html
Copyright © 2011-2022 走看看