【问题标题】:ASP.NET Core API Controllers - How to debug properlyASP.NET Core API 控制器 - 如何正确调试
【发布时间】:2020-02-25 16:43:02
【问题描述】:

在过去的几周里,我一直在使用 ASP.NET Core 后端(远程 Ubuntu 机器,仅限 SSH,Kestrel)。

当向服务器发送 HTTP 请求时,通常不会按我预期的方式处理它。

例子:

  • 对于 POST:操作参数将为 null0 或空的 string

  • action 方法根本没有执行

有没有办法查看到达服务器的请求的标头、正文等?

在调用相应的action方法之前,body数据是如何处理的?


我一直在阅读控制台输出并设置断点以了解发生了什么。

如果抛出异常或操作方法内部出现问题,这很好。

但这并不能帮助我理解在 action 方法执行之前发生了什么。

【问题讨论】:

  • 您应该提供示例代码和示例输入以重现该问题。
  • @ManojChoudhari 没有示例代码,因为没有示例。我不是在问一个非常具体的问题。
  • 设置日志提供程序。 docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/…。这将为您提供很多开箱即用的诊断信息,然后您可以添加自己的信息。

标签: c# rest debugging asp.net-core controller


【解决方案1】:

您可以在管道中添加一个中间件来检查任何请求。在中间件中,您将可以访问 HttpContext 及其所有属性(即请求及其标头)。只要您将app.Use() 调用放在app.UseMvc() 调用之前,您就可以在请求进入操作之前访问它。

更多关于 middleare 的信息在这里:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware

一旦它进入一个动作,你也可以访问控制器中的Request 对象。因此,您可以根据自己的喜好(本地窗口、监视窗口等)检查请求中的任何内容(即标头)。

如果您从ControllerBase 继承,您可以访问的所有属性都在这里:https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.controllerbase

正如Polyfun 所述,最好的方法是添加强大的日志记录。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2021-01-24
    • 2021-05-17
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多