【发布时间】:2015-06-17 20:50:31
【问题描述】:
我有一个 ASP.NET 5 站点,我想向其中添加自定义错误页面。我习惯于在 web.config 中添加条目(从 ASP.NET 4 天开始),但我想在 ASP.NET 5 中使用新方法。所以我的 Startup.cs 类中有以下内容:
if (env.IsEnvironment("Development"))
{
app.UseErrorPage(ErrorPageOptions.ShowAll);
}
else
{
app.UseStatusCodePagesWithReExecute("/Home/Error");
app.UseErrorHandler("/Home/Error");
}
当我使用 kestral 在本地运行时,我的错误页面会正确显示。但是,当我部署到 Azure 时,我会在尝试测试 404 错误时得到非常通用的白色错误页面:
“您要查找的资源已被删除、更改名称或暂时不可用。”
我尝试在我的 web.config 中实现这个答案,但它没有解决我的问题:
https://stackoverflow.com/a/29539669/8320
这是我的 web.config 的相关部分:
<system.web>
<customErrors mode="Off" />
</system.web>
我还确保了 Azure 网站的配置/应用设置部分中的 ASPNET_ENV="Production"。
有什么想法吗?如果我可以提供更多信息,请告诉我。
【问题讨论】:
-
StatusCodePages 中间件和 404 响应似乎在 IIS 上表现不同。您可以查看此问题,看看是否可以解决您的问题:github.com/aspnet/Diagnostics/issues/144
-
谢谢@KiranChalla 似乎解决了这个问题。当我将 env.IsEnvironment("Development") 块留在原地时,我确实有一个问题,为什么我会得到一个空白/空窗口。当我删除 if 语句和 app.UserErrorPage(ErrorPageOptions.ShowAll); 时,我只会显示正确的错误屏幕。有任何想法吗?另外,如果您将您的评论作为答案,我会投票赞成。
标签: asp.net asp.net-mvc azure azure-web-app-service asp.net-core