C# 当在热巧克力GraphQL服务器中引发异常时,如何获取更多错误详细信息或日志记录?

C# 当在热巧克力GraphQL服务器中引发异常时,如何获取更多错误详细信息或日志记录?,c#,asp.net-core,graphql,hotchocolate,C#,Asp.net Core,Graphql,Hotchocolate,我正在构建一个简单的HotChocolate GraphQl服务器,HotChocolate会抛出一个意外的执行错误,但在我发布一个针对该错误的请求后,不会公开有关该错误的任何信息。 我如何针对后端发布请求并不重要(BananaCakePop、邮递员、失眠等)。 响应如下所示: { “错误”:[ { “消息”:“意外执行错误”, “地点”:[ { "线":2,, “专栏”:3 } ], “路径”:[ “乒乓球” ] } ], “数据”:{ “pong”:空 } } 请求-响应不包含进一步的信息

我正在构建一个简单的HotChocolate GraphQl服务器,HotChocolate会抛出一个
意外的执行错误
,但在我发布一个针对该错误的请求后,不会公开有关该错误的任何信息。 我如何针对后端发布请求并不重要(BananaCakePop、邮递员、失眠等)。
响应如下所示:

{
“错误”:[
{
“消息”:“意外执行错误”,
“地点”:[
{
"线":2,,
“专栏”:3
}
],
“路径”:[
“乒乓球”
]
}
],
“数据”:{
“pong”:空
}
}
请求-响应不包含进一步的信息,应用程序控制台中也不会记录任何内容。
下一步尝试找出哪里出了问题是合理的吗?

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

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

公共类启动
{
私人只读IWebHostEnvironment;
公共启动(IWebHostEnvironment env)
{
_env=env;
}
public void配置服务(IServiceCollection服务)
{
服务
.AddGraphQLServer()
...
//您可以将_env.IsDevelopment()更改为您想要的任何条件。
//如果条件的计算结果为true,服务器将公开其异常详细信息
//在响应范围内。
.ModifyRequestOptions(opt=>opt.IncludeExceptionDetails=_env.IsDevelopment());
}
}
这就是如何更改V10中的默认行为:

公共类启动
{
私人只读IWebHostEnvironment;
公共启动(IWebHostEnvironment env)
{
_env=env;
}
public void配置服务(IServiceCollection服务)
{
services.AddGraphQL(
Schema.Create(builder=>
{
...
}),
//您可以将_env.IsDevelopment()更改为您想要的任何条件。
//如果条件的计算结果为true,服务器将公开其异常详细信息
//在响应范围内。
新查询执行选项{IncludeExceptionDetails=\u env.IsDevelopment()}
);
}
}
您还可以向应用程序添加IErrorFilter,例如,可以将异常记录到语言环境控制台,或者将异常转换为GraphQlErrors。 有关此主题的更多信息,请检查:

  • V11:TODO(目前没有关于此主题的正式V11文档)
  • V10:

对于有效的堆栈溢出问题,这不是一个有效的答案,因此此常见问题解答在此处无效,只要HotChocolate有文档,它就应该是一个文档。请仔细阅读,你说的完全错了。请检查:这并没有改变我说的话。你可以并且被鼓励回答自己的问题,但这些问题也必须是有效的。请阅读第11版,标题看起来应该是:
.AddGraphQLServer().ModifyRequestOptions(options=>options.IncludeExceptionDetails=true)