2016-08-15 57 views
0

我正在用Visual Studio 2015开发一个Asp.NET Web应用程序并在IIS Express下运行它。我想为它添加一个自定义错误页面。asp.net webapplication中的客户错误页面

首先,在web.config文件中,我在system.web部分下添加了customErrors标记。但它似乎没有任何影响。

<customErrors mode="On" defaultRedirect="/Error.aspx"> 
    <error statusCode="404" redirect="/Error.aspx" /> 
</customErrors> 

所以我在system.webServer下添加了一个httpErrors标记。它向我展示了一个空白页面。

<httpErrors existingResponse="PassThrough" /> 

所以我这个一个改变上述httpErrors标记:

<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" defaultPath="/Error.aspx"> 
    <clear/> 
    <error path="/Error.aspx" responseMode="ExecuteURL" statusCode="404"/> 
</httpErrors> 

而事实证明,我的“锁定冲突”错误。我试图删除,defaultPath在applicationHost.config文件,重新启动计算机,但同样的错误出现

即使在Global.asax中,Application_Error事件不会在一些错误的情况下解雇像404

有人有任何线索吗?

编辑: 我试图做同样的事情在一个新的解决方案: 所以我创建了一个新的Web应用程序 - 空白web表单模板。同样的结果。 但是,当我创建一个新的Web应用程序 - 空白MVC解决方案,它的工作。

webforms和mvc之间的配置是否有任何区别? webforms模板是否有其他人具有相同的问题?

+0

如何为您的应用程序池和网站在IIS配置? – pravs

+0

我正在使用IIS Express。所以我没有做任何服务器配置 – ihebiheb

回答

0

我能够重定向到错误页面。我在我目前的MVC项目中尝试了这个。下面是我做了什么

  1. 利用现有的错误页面,在我的下浏览解决方案/共享/ Error.cshtml
  2. 使用您的自定义错误的摘录参数

<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml"> <error statusCode="404" redirect="~/Views/Shared/Error.cshtml" /> </customErrors>

  • 在我的Index.cshtml中故意投掷404
  • @Response.StatusCode=404 @Response.End()

    提示:请尝试看看路径和你是如何测试404错误

    +0

    我有我的错误页面名为Error.aspx在服务器的根下,所以我设置defaultRedirect =“/ Error.aspx”(也试过defaultRedirect =“〜/ Error.aspx”)和为了测试404,我只是在地址栏中写入一个指向不存在页面的URL – ihebiheb