【发布时间】:2019-09-10 13:48:29
【问题描述】:
我正在尝试调试从 .net 472 应用程序对我的 ServiceStack Web 服务的调用。 Fiddler 一直是在我的其他针对相同服务的应用程序中检查流量的明显选择。
奇怪的是,当使用 JsonServiceClient 的 GetAsync() 方法时,我无法让 Fiddler 捕获任何流量。该调用按预期返回数据而没有问题,只是没有在 Fiddler 中跟踪:
var response = await client.GetAsync(new AroCodesRequest());
但是,如果我使用 Get() 方法,Fiddler 会按预期捕获流量:
var response = client.Get(new AroCodesRequest());
(编辑)将以下内容添加到 App.config 没有帮助:
<system.net>
<defaultProxy>
<proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False" />
</defaultProxy>
</system.net>
我已将 Fiddler 置于故障排除模式,但仍然没有运气。我一直无法在 Google/SO 上找到很多有用的信息,我怀疑我可能根本没有问正确的问题。
更新 从 ServiceStack 5.6.0 降级到 5.5.0 导致 Fiddler 再次捕获流量。我猜这与 5.6.0 发行说明中的这一行有关 - https://docs.servicestack.net/releases/v5.6#service-clients-async-webproxy - 我不完全理解发生了什么,我会继续关注它。
【问题讨论】:
-
异步操作不能保证在你调用它们的那一刻执行,因此得名。它们保证最终执行,但在最终执行之前调试应用程序和中断执行可能是您的问题。你能在 GetAsync 周围显示更多代码吗?
-
@GuillaumeCR 帖子已被编辑
-
嗯,看起来您的客户端类是专有代码。其实现中可能存在错误。尝试使用 .Net http 客户端,看看是否会得到不同的结果。
标签: c# servicestack fiddler visual-studio-2019