QuickAdminRCLSettingsAlwaysReturnHttp200OnApiException Property

指示当 API 发生未处理异常时,是否始终返回 HTTP 200 状态码。

Definition

Namespace: QuickAdmin.Common.Configuration
Assembly: QuickAdmin.Net (in QuickAdmin.Net.dll) Version: 2.0.13
C#
public bool AlwaysReturnHttp200OnApiException { get; set; }

Property Value

bool
默认 true

Remarks

如果为 false,则会返回真实的 HTTP 状态码(如 500)。

如果为 true,前端即使遇到服务器异常也会收到 HTTP 200,且:
若是常规 API 调用,将返回以下 JSON:
C#
{code: -2, msg: "服务端发生异常"} // -2 是枚举 ServiceErrorCode.ServerError 值
若是 FineUICore post back,将自动弹出一个错误提示框。

仅在你使用了内置的 Error 页面时此设置才有效,即启动代码里有:
C#
app.UseExceptionHandler("/QAdmin/Common/Error");  // 处理:未捕获异常
app.UseStatusCodePagesWithReExecute("/QAdmin/Common/Error", "?code={0}"); // 处理:404/403 等状态码错误
不过 UseExceptionHandler()/UseStatusCodePagesWithReExecute() 通常在开发环境下不会被调用,创建项目后,自动生成的代码会根据环境进行配置:
C#
// 在非开发环境下,才去调用
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/QAdmin/Common/Error");  // 处理:未捕获异常
    app.UseStatusCodePagesWithReExecute("/QAdmin/Common/Error", "?code={0}"); // 处理:404/403 等状态码错误
    ...
}
你可将 if (!app.Environment.IsDevelopment()) 注释掉,以便查看 QuickAdmin.Net 内置的错误处理效果。

See Also