Asp.net core app.UseExceptionHandler(“Home/Error”)未转到Home/Error
我创建了一个简单的主页/错误页,我可以直接访问它,没有问题。它现在只返回一些静态HTML。当我将Startup.cs更改为以下内容时:Asp.net core app.UseExceptionHandler(“Home/Error”)未转到Home/Error,asp.net-core,asp.net-core-mvc,asp.net-core-1.0,Asp.net Core,Asp.net Core Mvc,Asp.net Core 1.0,我创建了一个简单的主页/错误页,我可以直接访问它,没有问题。它现在只返回一些静态HTML。当我将Startup.cs更改为以下内容时: public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging"));
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseBrowserLink();
//app.UseDeveloperExceptionPage();
app.UseExceptionHandler("/Home/Error");
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseIISPlatformHandler();
app.UseSession();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
我希望被重定向到Home/Error。相反,我得到的是一个空白屏幕,如果我查看Chrome Developer tools中的“Network”选项卡,我会看到从我的“Home/TestException”操作返回的500状态,该操作会引发异常
如果我将其切换到app.UseDeveloperExceptionPage(),该页面就会显示得很好。你知道为什么这不起作用吗
我正在使用.Net Core 1.0.0-rc1-update1
以下是Project.json中的“依赖项”:
"dependencies": {
"AutoMapper": "4.2.1",
"Dapper": "1.42.0",
"Microsoft.AspNet.DataProtection": "1.0.0-rc1-final",
"Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
"Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final",
"Microsoft.AspNet.Identity.EntityFramework": "2.2.1",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.Session": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
"Newtonsoft.Json": "8.0.3",
"Oracle.ManagedDataAccess": "12.1.24160419",
"System.Net.Http": "4.0.0"
},
我希望被重定向到Home/Error。相反,我得到的是一个空白屏幕,如果我查看Chrome Developer tools中的“Network”选项卡,我会看到从我的“Home/TestException”操作返回的500状态,该操作会引发异常
如果我将其切换到app.UseDeveloperExceptionPage(),该页面就会显示得很好。你知道为什么这不起作用吗
我不知道为什么app.UseExceptionHandler(“/Home/Error”)代码>不工作-可能是因为表单异常类型你能给我们举个例外的例子吗
作为临时(或非临时)解决方案,您还可以另外使用:app.UseStatusCodePagesWithRedirects(“/Home/code/{0}”)代码>
这样,您也可以重定向到案例中的错误
页面,以及{0}
它的错误代码-您可以从地址中删除它,也可以在错误页面上使用它
更多信息:
这在rc1下不起作用。直到我将整个项目转移到RC2,这一切才开始起作用。我认为dnx组件的某些版本(现在已经过时)可能只是版本控制问题。谢谢大家的建议。应用程序。UseStatusCodePagesWithReExecute似乎运行良好:
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
}
else
{
app.UseStatusCodePagesWithReExecute("/Home/Error");
}
我在尝试使用“Razor页面”而不是“Razor视图”进行错误处理时遇到了这个问题。问题是没有一个“剃须刀页面”工作,因为没有设置剃须刀页面的路由
我通过将.MapRazorPages()添加到我的路由中修复了它
app.UseEndpoints(cfg =>
{
cfg.MapControllerRoute("Fallback",
"{controller}/{action}/{id?}",
new { controller = "App", action = "Index" }
);
cfg.MapRazorPages();
});
我不能重复这个问题。请发布您的整个Configure()方法以及您使用的ASP.NET Core的版本。谢谢Clint,我用这些信息编辑了上面的文章。您的应用程序是否引发任何异常?只有当您的应用程序在托管:环境开发中运行并引发异常时,才会执行此操作。从您的项目中可以看到这一点。json
删除行“PreserveComilationContext”:true
和see/Home/Error/
将起作用。您可以共享您的主控制器和视图目录结构吗?如果切换到应用程序,您会看到什么异常情况。UseDeveloperExceptionPage()
?