我正在使用Visual Studio 2015 Update 3和ASP.NET Core。其中一个API(Account)依赖于使用Redis的缓存服务。
public override int SaveChanges()
{
var PartAssemblyList = ChangeTracker.Entries()
.Where( x => x.Entity is Order &&
x.State == EntityState.Added);
foreach (var entity in PartAssemblyList)
{
if (/*RowExists*/)
{
//Cancel Save (entity.State = EntityState.Unchanged)?
//Update Quantity of Existing Row
//Set existing row to save
}
}
return base.SaveChanges();
}
当Redis没有运行时,api / account应该不起作用,因为Cache Service应该与Redis建立连接。
在启动课程中:
public AccountController(Cache.Contracts.ICacheManager cacheManager)
{
_cacheManager = cacheManager;
}
申请api / account
时从Visual Studio运行项目
它提供以下内容:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
loggerFactory.AddDebug();
}
使用The localhost page isn’t working
localhost is currently unable to handle this request.
从powershell运行时:
这也是例外设置
问题
为什么Visual Studio案例中不会抛出错误?我需要知道导致我的应用程序崩溃的错误。
答案 0 :(得分:1)
请求管道期间抛出错误。所以,你可能不会直接看到它。
添加开发人员异常页面app.UseDeveloperExceptionPage()
以查看详细信息而不是通用消息和/或添加自定义中间件以捕获每个请求上发生的所有异常。在这种情况下,您可以设置断点并检查异常或记录它:
app.Use(async (ctx, next) =>
{
try
{
await next.Invoke();
}
catch (Exception ex)
{
}
});
重要的是,在开始之前,在任何其他中间件或.UseMvc等之前添加此中间件......