Tho*_*dal 5 asp.net middleware asp.net-core
我在一个我创建的简单中间件中遇到了问题.响应的状态代码是200,即使我在控制器操作中抛出异常并且返回给客户端的状态代码是500.
我的中间件看起来像这样:
public async Task Invoke(HttpContext context)
{
try
{
await _next.Invoke(context);
}
catch (Exception exception)
{
// context.Response.StatusCode == 200
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
看起来将异常转换为500的逻辑发生在中间件管道的后续步骤中.
该Configure方法Startup.cs如下所示:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//app.UseExceptionHandler("/Home/Error");
app.UseMiddleware<MyMiddleware>();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Run Code Online (Sandbox Code Playgroud)
请注意,我没有使用UseExceptionHandler.
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |