标签: custom-error-pages

如何在web.xml中指定默认错误页面?

<error-page>web.xml中使用元素来指定用户遇到某个错误时的友好错误页面,例如代码为404的错误:

<error-page>
        <error-code>404</error-code>
        <location>/Error404.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

但是,我希望如果用户不符合指定的任何错误代码<error-page>,他或她应该看到默认错误页面.如何使用web.xml中的元素执行此操作?

java jsp web.xml servlets custom-error-pages

132
推荐指数
3
解决办法
21万
查看次数

自定义ASP.NET MVC 404错误页面的路由

当有人键入不调用ASP.NET MVC中的有效操作或控制器的URL而不显示通用的"未找到资源"ASP.NET错误时,我试图创建自定义HTTP 404错误页面.

我不想使用web.config来处理这个问题.

是否有任何类型的路由魔法可以捕获任何无效的URL?

更新:我尝试了给出的答案,但我仍然得到丑陋的"资源未找到"消息.

另一个更新:好的,显然RC1中发生了一些变化.我甚至尝试过专门捕获404 HttpException,它仍然只是给了我"资源未找到"页面.

我甚至使用过MvcContrib的资源功能,没有 - 同样的问题.有任何想法吗?

asp.net asp.net-mvc custom-error-pages asp.net-mvc-routing http-status-code-404

116
推荐指数
7
解决办法
15万
查看次数

ASP.NET自定义错误页面 - Server.GetLastError()为null

我为我的应用程序设置了自定义错误页面:

<customErrors mode="On" defaultRedirect="~/errors/GeneralError.aspx"
/>
Run Code Online (Sandbox Code Playgroud)

在Global.asax,Application_Error()中,以下代码用于获取异常详细信息:

  Exception ex = Server.GetLastError();
  if (ex != null)
    {
        if (ex.GetBaseException() != null)
            ex = ex.GetBaseException();
    }
Run Code Online (Sandbox Code Playgroud)

当我到达我的错误页面(〜/ errors/GeneralError.aspx.cs)时,Server.GetLastError()为null

有没有什么办法可以在错误页面上获取异常详细信息,而不是在Global.asax.cs中?

Vista/IIS7上的ASP.NET 3.5

asp.net web-applications exception custom-error-pages

111
推荐指数
6
解决办法
11万
查看次数

ASP.NET MVC HandleError

我如何[HandleError]在asp.net MVC Preview 5中进行过滤?
我在我的Web.config文件中设置了customErrors

<customErrors mode="On" defaultRedirect="Error.aspx">
  <error statusCode="403" redirect="NoAccess.htm"/>
  <error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
Run Code Online (Sandbox Code Playgroud)

并将[HandleError]放在我的Controller类上面,如下所示:

[HandleError]
public class DSWebsiteController: Controller
{
    [snip]
    public ActionResult CrashTest()
    {
        throw new Exception("Oh Noes!");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我让我的控制器从这个类继承并在它们上调用CrashTest().视觉工作室在错误时停止并按下f5继续后,我被重新路由到Error.aspx?aspxerrorpath =/sxi.mvc/CrashTest(其中sxi是所用控制器的名称.当然道路无法找到,我得到"'''应用程序中的服务器错误."404.

这个站点从预览3移植到5.除了错误处理之外,所有东西都运行(没有太多工作要移植).当我创建一个完整的新项目时,错误处理似乎有效.

想法?

- 注意 -
由于这个问题现在有超过3K的视图,我认为放入我目前使用的(ASP.NET MVC 1.0)是有益的.在mvc contrib项目中有一个名为"RescueAttribute"的出色属性你也应该检查一下;)

asp.net-mvc handleerror custom-error-pages

109
推荐指数
4
解决办法
10万
查看次数

nginx没有提供我的error_page

我有一个用Unicorn托管的Sinatra应用程序,在它前面有nginx.当Sinatra应用程序出错(返回500)时,我想提供一个静态页面,而不是默认的"内部服务器错误".我有以下nginx配置:

server {
  listen 80 default;
  server_name *.example.com;
  root /home/deploy/www-frontend/current/public;

  location / {
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_connect_timeout 5;
    proxy_read_timeout 240;
    proxy_pass http://127.0.0.1:4701/;
  }

  error_page 500 502 503 504 /50x.html;
}
Run Code Online (Sandbox Code Playgroud)

error_page指令在那里,我有sudo'd作为www-data(Ubuntu)并验证我可以cat文件,因此它不是权限问题.使用上面的配置文件,并且service nginx reload,我在错误时收到的页面仍然是"内部服务器错误".

我的错误是什么?

nginx custom-error-pages

41
推荐指数
3
解决办法
4万
查看次数

如何在servlet抛出运行时异常时在浏览器中显示用户友好的错误页面?

我正在使用JSF开发Web应用程序.我测试了它,因为我能够但不时抛出运行时异常.

那么,每次抛出异常时如何将用户重定向到特殊错误页面(而不是显示完整tomcat日志的500错误)?

jsf jsp facelets custom-error-pages

39
推荐指数
2
解决办法
5万
查看次数

重定向404错误htaccess后重写URL

所以我知道这看起来有点奇怪,但为了保持一致性,我希望我的所有网址都以这种形式出现:http://domain.com/page/到目前为止,我已经让常规页面正常工作,但我不能似乎让错误页面正常工作.

如果用户访问不存在的页面或目录,我希望浏览器硬重定向到:http://domain.com/404/但是,此目录实际上不存在.错误页面的真实位置将在/pages/errors/404.php下

此外,虽然我不需要所有各种错误(400,401,403,404,500)的确切答案,但我将应用任何方法将所有这些重定向到他们的"正确"URL(例如http) ://domain.com/400/ http://domain.com/500/等)

有任何想法吗?

.htaccess redirect rewrite url-rewriting custom-error-pages

35
推荐指数
3
解决办法
18万
查看次数

ASP.NET MVC 5自定义错误页面

我在ASP.NET MVC 5应用程序中使用自定义authorize属性,如下所示:

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext context)
    {
        if (context.HttpContext.Request.IsAuthenticated)
        {
            context.Result = new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);                
        }
        else
        {
            base.HandleUnauthorizedRequest(context);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

system.web我的web.config部分,我提到了错误路径,如:

<system.web>
    <customErrors mode="On" defaultRedirect="/Error/Error">
      <error statusCode="403" redirect="/Error/NoPermissions"/>
    </customErrors>
</system.web>
Run Code Online (Sandbox Code Playgroud)

但我从未被重定向到我的自定义错误页面/Error/NoPermissions.相反,浏览器显示"HTTP错误403.0 - 禁止"的常规错误页面.

asp.net-mvc custom-error-pages custom-errors

29
推荐指数
4
解决办法
5万
查看次数

如何在自定义错误页面(Tomcat)中获取消息?

在JSP中,您可以使用response.sendError(int code, String message)返回特定的错误代码(例如404找不到)和消息.只要您使用默认的丑陋Tomcat错误页面,这些消息就会显示正常.但是,如果您创建自定义错误页面,您如何获得该消息?我已经试过exception.getMessage()pageContext.getErrorData()却无济于事.我一直在寻找这个好几个小时,似乎没有人想知道同样的事情!:S

我忘了提到我到目前为止只用404s尝试过,因为这是我最需要的...由于某种原因异常是null,所以在它上面尝试任何东西都会抛出NullPointerException.错误页面是一个404错误页面,通过web.xml设置(因为我希望它显示每个单个404错误)和任何想知道的人,是的,它将isErrorPage指令设置为true ...

jsp tomcat custom-error-pages

27
推荐指数
3
解决办法
3万
查看次数

如何在Asp.Net Mvc 3中显示自定义错误页面?

我希望将所有401错误重定向到自定义错误页面.我最初在web.config中设置了以下条目.

<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
  <error statusCode="401" redirect="~/Views/Shared/AccessDenied.aspx" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

使用IIS Express时,我收到了IIS Express 401错误页面.

如果我不使用IIS Express,则返回空白页面.使用Google Chrome的"网络"标签检查响应,我看到当页面为空白时,标题中会返回401状态

到目前为止我尝试使用的是这个SO答案中的建议,因为我使用的是IIS Express,但无济于事.我尝试过使用组合<custom errors><httpErrors>没有运气 - 标准错误或空白页仍然显示.

httpErrors部分看起来像这样的基础上,瞬间链接上面的SO问题(我还发现了另一种非常有前途的答案却没有运气-空白响应)

<system.webServer>
  <httpErrors  errorMode="DetailedLocalOnly" existingResponse="PassThrough" >
    <remove statusCode="401"  />
    <error statusCode="401" path="/Views/Shared/AccessDenied.htm" />
  </httpErrors>

 <!-- 
 <httpErrors  errorMode="Custom" 
             existingResponse="PassThrough" 
             defaultResponseMode="ExecuteURL">
      <remove statusCode="401"  />
  <error statusCode="401" path="~/Views/Shared/AccessDenied.htm" 
         responseMode="File" />
 </httpErrors>
 -->
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我甚至已经修改了applicationhost.config文件,并修改<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">,以<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated">基于从信息iis.net.在我努力的过程中,我也设法偶然发现了另一个SO问题中描述的这个错误.

如何在Asp.Net Mvc …

error-handling http-error custom-error-pages iis-express asp.net-mvc-3

23
推荐指数
3
解决办法
3万
查看次数