.NET 7孤立工作者模型Azure Functions中NotFoundObjectResult的等效替代
.NET 7孤立工作者模型中返回“未找到数据”的等效实现
在.NET 7的Azure Function孤立工作者模型中,不再使用ASP.NET Core的NotFoundObjectResult这类ActionResult类型,而是通过HttpResponseData来构建HTTP响应。以下是等效实现代码:
// 函数需注入FunctionContext参数 public async Task<HttpResponseData> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequestData req, FunctionContext context, ILogger log) { try { // 业务逻辑代码 } catch (Exception ex) { log.LogError($"Data Access Failed: {ex.Message}"); // 构建404响应 var response = context.GetHttpResponseData(); response.StatusCode = System.Net.HttpStatusCode.NotFound; response.Headers.Add("Content-Type", "application/json; charset=utf-8"); // 写入JSON格式的响应内容 await response.WriteAsJsonAsync(new { Message = ex.Message }); // 若需返回纯文本,可替换为: // await response.WriteStringAsync(ex.Message); return response; } }
关键说明:
- 孤立工作者模型的HTTP触发函数,返回类型统一为
HttpResponseData - 必须通过
FunctionContext的GetHttpResponseData()方法创建响应实例 - 设置
StatusCode为HttpStatusCode.NotFound即可返回404状态码 - 可通过
WriteAsJsonAsync或WriteStringAsync方法写入响应内容,适配不同格式需求
内容的提问来源于stack exchange,提问作者wonderful world
相关产品推荐
相关产品推荐

