gpt4 book ai didi

c# - 当 HotChocolate GraphQL 服务器中抛出异常时,如何获取更多错误详细信息或日志记录?

转载 作者:行者123 更新时间:2023-12-04 02:28:26 27 4
gpt4 key购买 nike

我正在构建一个简单的 HotChocolate GraphQl 服务器,HotChocolate 抛出一个 Unexpected Execution Error ,但不会公开有关错误的任何信息,只要我针对它发布请求。
我如何向后端(BananaCakePop、Postman、Insomnia 等)发布请求并不重要。
响应如下所示:

{
"errors": [
{
"message": "Unexpected Execution Error",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"pong"
]
}
],
"data": {
"pong": null
}
}
请求响应不包含更多信息,应用程序控制台也没有记录任何内容。
尝试找出问题所在的合理下一步是什么?

最佳答案

如果没有附加调试器,默认情况下 HotChocolate 不会公开您的异常的详细信息。
因此,要获取错误消息,您可以:

  • 将调试器附加到您的服务器,然后它将公开请求中的异常详细信息(也就是在调试中启动您的服务器:D)
  • 以更适合您的开发风格的方式更改此行为。

  • 您可以通过以下方式更改 V11 中的默认行为:
    public class Startup
    {
    private readonly IWebHostEnvironment _env;

    public Startup(IWebHostEnvironment env)
    {
    _env = env;
    }

    public void ConfigureServices(IServiceCollection services)
    {
    services
    .AddGraphQLServer()
    ...
    // You can change _env.IsDevelopment() to whatever condition you want.
    // If the condition evaluates to true, the server will expose it's exceptions details
    // within the reponse.
    .ModifyRequestOptions(opt => opt.IncludeExceptionDetails = _env.IsDevelopment());
    }
    }
    您可以通过以下方式更改 V10 中的默认行为:
    public class Startup
    {
    private readonly IWebHostEnvironment _env;

    public Startup(IWebHostEnvironment env)
    {
    _env = env;
    }

    public void ConfigureServices(IServiceCollection services)
    {
    services.AddGraphQL(
    Schema.Create(builder =>
    {
    ...
    }),
    // You can change _env.IsDevelopment() to whatever condition you want.
    // If the condition evaluates to true, the server will expose it's exceptions details
    // within the reponse.
    new QueryExecutionOptions {IncludeExceptionDetails = _env.IsDevelopment()}
    );
    }
    }
    您还可以向您的应用程序添加 IErrorFilter,例如,可以将您的异常记录到您的语言环境控制台,或将异常转换为 GraphQlErrors。
    有关此主题的更多信息,请查看:
  • V11:TODO(目前没有关于这个主题的官方 V11 文档)
  • V10:https://chillicream.com/docs/hotchocolate/v10/execution-engine/error-filter/#exception-details
  • 关于c# - 当 HotChocolate GraphQL 服务器中抛出异常时,如何获取更多错误详细信息或日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65764361/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com