【问题标题】:Internal Server error while getting response from webapi using httpclient postasync in .net core 3.1在.net core 3.1中使用httpclient postasync从webapi获取响应时出现内部服务器错误
【发布时间】:2021-06-18 05:53:34
【问题描述】:
_clientRequest = new CustomHttpClient(parameters.AppInstanceID, Cockpit4DIAConnection);
            
HttpContent requestParameter = new ObjectContent<ViewParameters>(parameters, new JsonMediaTypeFormatter());
HttpResponseMessage response = await _clientRequest.PostAsync(_Url + _PartialQueryResultAsString, requestParameter);
return JsonConvert.DeserializeObject<QueryWrapper>(response.Content.ReadAsStringAsync().Result);

此 partialqueryresult 方法在将数据从 api 传输到此控制器响应时有数据作为 .net core 3.1 中的内部服务器错误 500

我正在迁移应用程序。它在 asp.net 框架中运行良好。

我有几种使用 postasync 的方法。他们工作正常。

响应类型有问题吗?

【问题讨论】:

  • 内部服务器错误应该导致日志中出现错误...您检查过您的日志吗?
  • 我还没有使用日志记录..您指的是任何通用日志吗?
  • 网络服务器日志。在您知道如何找到日志之前,我会停止任何其他工作 - 否则就像试图闭着眼睛工作一样。

标签: c# asp.net asp.net-mvc .net-core httpclient


【解决方案1】:

内部服务器错误是服务器内部的。这不是客户端的错误。

但是,服务器可能在处理您提供不正确信息的情况下处理不当,因此返回 500 而不是更详细地说明您究竟做错了什么。

例如,假设我向服务器发送一个 ID 以获取服务器数据库中不存在的资源。这应该会产生 4xx 状态响应(因为这是客户端错误,而不是服务器错误),但如果服务器没有正确检查 null,它将遇到 NullReferenceException,如果不处理,则会冒泡到端点并被转换为 500 内部服务器错误。

最终解决方案必须来自您的客户端更改它发送到服务器的内容,但这并非不可能,但这只能在您调试服务器(或简单地阅读其日志)以找出原因后才能确认内部服务器错误是。

【讨论】:

    猜你喜欢
    • 2019-12-25
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 2019-11-12
    • 2016-10-19
    • 1970-01-01
    相关资源
    最近更新 更多