为HttpStatusCodeResult加入customErrors

asp.net mvc的action返回值为HttpStatusCodeResult时的customErrors总是不起作用

(404和exception时的500,因为他们并不是HttpStatusCodeResult类型的返回值,所以还能使用)

其解决的方法例如以下:

1. 开启customErrors(为了保留原有的404、500等错误)

2. 开启httpErrors(为专门定制的statuscode)

3. 设置Global:Response.TrySkipIisCustomErrors = true;

  <system.web>
    <customErrors mode="On" defaultRedirect="~/Home/Error">
      <error statusCode="404" redirect="~/Home/Error/404" />
      <error statusCode="500" redirect="~/Home/Error/500" />
    </customErrors>
  </system.web>
  <system.webServer>
    <httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL">
      <error statusCode="420" path="/Home/Error/420" responseMode="ExecuteURL" />
    </httpErrors>
  </system.webServer>
protected void Application_Error(object sender, EventArgs e)
{

    Response.TrySkipIisCustomErrors = true;

    Exception exc = Server.GetLastError();
    if (exc is HttpUnhandledException)
    {
        Server.Transfer("Home/Error/500", true);
    }
}

为HttpStatusCodeResult加入customErrors,布布扣,bubuko.com

时间: 2024-10-27 05:54:30

为HttpStatusCodeResult加入customErrors的相关文章

为HttpStatusCodeResult添加customErrors

asp.net mvc的action返回值为HttpStatusCodeResult时的customErrors总是不起作用 (404和exception时的500,由于他们并非HttpStatusCodeResult类型的返回值,所以还能使用) 其解决办法如下: 1. 开启customErrors(为了保留原有的404.500等错误) 2. 开启httpErrors(为专门定制的statuscode) 3. 设置Global:Response.TrySkipIisCustomErrors =

解决MVC 中httpstatuscoderesult 通过StatusDescription 返回中文乱码

c#中httpstatuscoderesult语法如下: public HttpStatusCodeResult( HttpStatusCode statusCode, string statusDescription ) 在Action中通过 return new HttpStatusCodeResult(HttpStatusCode.BadRequest,"我是中文字符串") 在前端返回的是乱码. 原因: 根据 http 协议,StatusDescription 是写在 http

customErrors与错误页面

本配置节相对简单而且常用 <customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> <error statusCode="statuscode" redirect="url"/> <error. . ./> </customErrors> mode的值有如下三种 值 说明 On 指定启用自定义错误.如果未指定 de

[ASP.net]web.config的customErrors与httpErrors的区别

之前一直知道设置web.config(其实就是xml文件)的customErrors的error来指向自定义的错误页的URL,但是今天在调试的时候发现customErrors无法跳转到自定义的页面,在网上找了半天才了解还有httpErrors可以设置跳转自定义错误页. web.config文件如下 <?xml version="1.0"?> <configuration> <system.web> <compilation debug=&quo

asp.net 中的错误跳转 customerrors 对html文件不起作用

在配置web.config时发现customerrors对aspx文件是起作用的,我想通过customerrors来判断是否有html文件时,却不起作用? 这是为什么,如果要起作用.net里该如何操作? 之所以aspx有用,而html没用是因为iis里的配置里设定了*.aspx,*.config等文件由aspnet_isapi.dll来处理而html默认是不处理, 直接发送给客户端如果你希望html也由aspnet_isapi.dll处理,可以去设置但是这样,html的响应速度也会变慢,因为每个

关于 &lt;customErrors&gt; 标记的“mode”属性设置为“Off”的问题的解决方案

用 权限问题 <customErrors> 标记的"mode"属性设置为"Off". 权限问题标记的"mode"属性设置为"Off".说明: 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止查看应用程序错误的详细信息. 详细信息: 若要使他人能够从本地服务器计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的"web.config"配置文件中创建一个 <

webConfig中&lt;customErrors&gt;节点配置

发布在远程计算机上的网站调试问题: 通常情况下我们会设置错误页,不让用户看到错误信息 这种WebConfig的配置方法是: <configuration> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/> </system.web> </configuration> 如果要根据不同的服务器状态跳

SharePoint 2013 设置customErrors显示实际的错误信息

一.首先设置IIS中的Web.config文件 找到对应的IIS应用程序目录,如:C:\inetpub\wwwroot\wss\VirtualDirectories\3000 在此文件夹下包含一个web.config文件,打开找到<customErrors mode="On" />标签,改为<customErrors mode="Off" />: 然后找到<SafeMode MaxControls="200" Cal

关于web.config中&lt;customErrors&gt;节点说明

<customErrors>节点用于定义一些自定义错误信息的信息.此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误.Mode属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下: Mode 说明On 表示在本地和远程用户都会看到自定义错误信息.Off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息.RemoteOnly 表示本地用户将看