【问题标题】:Is there a tool in VS2015 to debug webapi routes?VS2015中是否有调试webapi路由的工具?
【发布时间】:2016-08-24 06:16:14
【问题描述】:

在 Visual Studio 2015 (Enterprise) 中,是否仍然没有内置工具可以剖析和显示 WebAPI 调用的路由信息​​?

WebApi Route Debugger 似乎不适用于 ASP.NET 5(并且会破坏模板中的默认帮助页面)

Glimpse 不提供“立即启动!”据我所知,按钮不再是 (http://blog.markvincze.com/use-glimpse-with-asp-net-web-api/)。

【问题讨论】:

  • 使用 Chrome 的 PostMan 工具
  • 据说目前的beta版本支持web api,但我还没有证实。我不知道有什么工具可以做到这一点,但如果您正在调试,我相信 RequestContext 可能包含您正在寻找的内容以及 UrlHelper。您也许可以创建一个过滤器来帮助您检查路线。
  • Glimpse 确实提供了立即启动按钮。你的目光中是否缺少它?

标签: asp.net asp.net-web-api asp.net-web-api-routing


【解决方案1】:

RouteDebugger 可以很好地确定哪些路由会/不会被命中。

http://nuget.org/packages/routedebugger 但你说它不起作用。经过一番谷歌搜索后,我找到了解决您问题的另一种方法,

在 Global.asax.cs 中添加一个事件处理程序来接收传入的请求,然后在 VS 调试器中查看路由值。重写 Init 方法如下:

public override void Init()
{
    base.Init();
    this.AcquireRequestState += showRouteValues;
}

...

protected void showRouteValues(object sender, EventArgs e)
{
    var context = HttpContext.Current;
    if (context == null)
        return;
    var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(context)); 
}

然后在showRouteValues中设置断点,查看routeData的内容。

请记住,在 Web Api 项目中,Http 路由位于 WebApiConfig.cs ...而不是 RouteConfig.cs

但这不是工具。可能正在挖掘一些线程可以帮助您解决问题。

参考:Is there a way I can debug a route in ASP. MVC5?

【讨论】:

  • 这就是为什么提供参考,因为它不是我的创作。 :) 复制,因为它会直接给你你想要的。
  • 顺便说一句,Glimpse 确实提供了立即启动按钮。你为什么说现在没有?
猜你喜欢
  • 1970-01-01
  • 2011-11-13
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多