我试图按照这个问题的答案添加custon 404页面

ASP.NET MVC 404处理和IIS7 <httpErrors>

通过增加

<httpErrors existingResponse="PassThrough" />

在我的Web.Config文件中的<system.webServer>标记下。

但我得到了以下错误

Module: CustomErrorModule 
Notification: SendResponse 
Handler: System.Web.Mvc.MvcHandler 
Error Code: 0x80070021 
Config Error: This configuration section cannot be used at this path. 
              This happens when the section is locked at a parent level. 
              Locking is either by default (overrideModeDefault="Deny"), 
              or set explicitly by a location tag with overrideMode="Deny" 
              or the legacy allowOverride="false".  


 Config Source
  153:       <httpErrors existingResponse="PassThrough" />
  154:   </system.webServer>

我还尝试根据http://learn.iis.net/page.aspx/145/how-to-use-locking-in-iis-70-configuration (任务2)覆盖锁定

通过在Web.config中添加位置标记

如下

<configuration>
....
....

  <location  allowOverride="true">
        <system.webServer>
            <httpErrors existingResponse="PassThrough" />
        </system.webServer>
  </location>
</configuration>

但我得到了同样的错误。

我应该如何在Web.config中配置httpErrors元素以使其正常工作

我正在使用IIS 7,VS 2010,ASP.NET MVC3

更新:

我能够摆脱锁定的错误

如果我修改applicationHost.config文件并更改

这个

<section name="httpErrors" overrideModeDefault="Deny" />

<section name="httpErrors" overrideModeDefault="Allow" />

但理想情况下,我不想更改applicationHost.config文件,并希望从Web.config文件中覆盖它

#1楼 票数:3

如果您有兴趣,可以从Global.asax.cs创建自定义错误处理:

protected void Application_Error()
        {

                var exc = Server.GetLastError();
                var httpExc = exc as HttpException;
                Response.Clear();
                Server.ClearError();
                var routeData = new RouteData();
                routeData.Values["controller"] = "Error";
                routeData.Values["action"] = "General";
                routeData.Values["exception"] = exc;
                Response.StatusCode = 500;
                if (httpExc != null)
                {
                    Response.StatusCode = httpExc.GetHttpCode();
                    routeData.Values["action"] = "Http404";
                    routeData.Values["exception"] = httpExc;
                }
                Response.TrySkipIisCustomErrors = true;
                IController errorsController = new WWS_Website.Controllers.ErrorController();
                var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
                errorsController.Execute(rc);

        }

控制器:

public ActionResult General(Exception exception)
{
  return View(exception);
}

public ActionResult Http404(Exception exception)
{
  return View(exception);
}

您可以为每个错误提供不同的视图。 您还可以通过此控制器方法向您的网站管理员电子邮件帐户发送电子邮件 - 非常方便。

  ask by N30 translate from so

未解决问题?本站智能推荐:

1回复

ASP.NET MVC是在子文件夹web.config中忽略的maxRequestLength和maxAllowedContentLength吗?

我在子目录(即Areas \\ Administration \\ Views)中的web.config(每个20MB)中设置了maxRequestLength和maxAllowedContentLength。 我在管理中上传文件,当我尝试上传大文件(在这种情况下约为9MB)时,我得到“超出最
3回复

如何从web.config读取系统值并在ASP.NET MVC C#方法中使用

我正在开发一个ASP.NET MVC3 Web应用程序(不是我编写的),其最大上载大小为100MB。 现在,此Web应用程序已安装在客户端的服务器计算机上,因此,如果可以为每个客户配置此值最大上载大小,那将会很好。 如果需要,他们可以访问Web应用程序的web.config。 现在we
2回复

没有Web.config的IIS 7自定义错误页面

有没有办法在IIS 7中设置自定义错误页面而不创建web.config? 不幸的是,研究这个特定的主题非常困难,因为有很多关于如何使用web.config做的文章。 我正在寻找的是埋藏在我不想要的800万个结果之下,或者它是不可能的。
1回复

使用IIS 7.5在Sharepoint 2007内设置MVC 3应用程序后,Web应用程序将提供DLL吗?

我目前正在开发一个SharePoint 2007,Web应用程序,并且试图在运行.Net Framework 4.0(集成模式)的同一网站内创建一个MVC 3网站。 最初,我们有问题,把它作为工作的web.config文件(主网站[SharePoint 2007中])有用于.NET Fra
1回复

IIS可以限制请求吗 适用于特定的ASP.NET路由?

我正在查看IIS 7 请求限制<requestLimits>设置,特别是maxAllowedContentLength并且想知道是否可以将其应用于ASP.NET路由级别? 我正在一个允许文件上传的ASP.NET MVC 3项目中工作,但我只想允许对那些特定路由的较大请求。 此
2回复

主MVC3网络应用程序干扰儿童MVC3网络应用程序

这里只是一些背景信息。 我目前正在使用WinHost共享主机,并进行以下设置 在WinHost中,它允许我设置应用程序的起点,所以我可以 每个应用程序都有自己的web.config,所以它就像 好吧,令我惊讶的是,即使将/ child文件夹设置为应用程序起点,它似乎也不
1回复

ASP.NET MVC3-重定向到其他目录

我们有一堆发布的URL引用了一个名为“事件”的目录 他们现在想将“事件”重命名为“ events1”,因此我需要重定向所有如下所示的URL: 至: 我已经在Apache中完成了这些操作-不确定我是否走对了轨道? 这看起来像什么? 谢谢
2回复

使用AD的基于ASP.NET MVC表单的Auth在本地工作但在服务器上失败(iis7)

我实现了一个基于表单的身份验证,在ASP MVC 3应用程序中使用AD遵循我在此处找到的指示ASP.NET MVC - 针对Active Directory验证用户,但需要输入用户名和密码 我使用ASP.NET开发服务器运行时工作正常,但在输入凭据后无法超出登录页面并出现以下错误: