我无法在IIS8.5中显示任何自定义错误页面!
当我在Visual Studio中本地运行MVC 5应用程序时,会显示自定义错误页面。但是当我在我的网络服务器上部署到IIS并导航到带有“错误URL”的网站子页面时,我的自定义404页面应该会显示,但会显示默认的通用404页面。
以下是我所做的:
的web.config
customError部分已被删除。
添加了以下部分
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error/ServerError" />
</httpErrors>
</system.webServer>
控制器
namespace MyApp.Controllers
{
[Authorize(Roles = "MyRole")]
public class ErrorController : Controller
{
[AllowAnonymous]
public ActionResult NotFound()
{
Response.StatusCode = 404;
return View();
}
[AllowAnonymous]
public ActionResult ServerError()
{
Response.StatusCode = 500;
return View();
}
}
}
视图
非常简单直接(不包括在这里)。
IIS
已验证IIS错误页面功能与我的配置中的功能相同。每个错误状态代码的页面。功能和页面设置为“自定义”。
已安装已检查的Windows功能\ Web服务器(IIS)\ Web服务器\常见HTTP功能\ HTTP错误。
开发人员工具
导航到拼写错误的子页面显示我收到404客户端错误。
帮助
我尝试了很多东西!我错过了什么吗? IIS环境问题,即某处设置?
自定义错误在我的IDE中有效但在IIS上无效。我花了一天多的时间!阅读SO上的许多页面,文章和类似问题。
答案 0 :(得分:1)
在IIS中,我的网站作为默认网站下的应用程序驻留,例如默认网站\ MyDevSite。 (我的所有开发站点都在默认网站下。)
当我将网站移至其自己的IIS网站时,现在正在显示自定义错误页面!
如果有人知道在IIS中使用应用程序阻止显示自定义错误页面的原因,请在此处添加注释。理解为什么会发生这种情况会很好。
我希望这可以帮助别人。我已经有一段时间了。
答案 1 :(得分:0)
您是如何浏览IIS的?如果您是从同一台计算机上执行此操作,那么您将无法查看自定义错误页面,因为如果未指定,customErrors
部分将默认使用RemoteOnly
。 / p>
答案 2 :(得分:0)
问题出在web.config(path =“ / Error / NotFound”)中的路径。在“默认网站”下移动网站时,“未找到”页面的url路径将被更改。因此,在路径中提供正确的页面url即可使用(对我来说这是有效的)。