我对 MVC 有点新,我没有经验丰富的编码器,所以我可能错过了一些非常明显的东西。
我一直在尝试搜索相关信息,但没有提出解释行为的奇怪突然变化的事情。
我有一个 TestApp ,它使用HTTPClient.GetAsync
调用 MVC应用程序。
我在TestApp中添加了这样的断点:
HttpResponseMessage response = await client.GetAsync(${GetApiUrl(ApiUrls.GetOrder)}?OrderRef{Order.OrderRef}");
string responseBody = await response.Content.ReadAsStringAsync(); <<< Breakpoint
基本上,await client.GetAsync(...
执行后会发生的事情是VS2015只是永远等待而且调用永远不会返回调试器?
为了您的信息,我还在 MVC 一侧设置了断点,如下所示:
[Route("Order")]
[HttpGet]
public Order GetOrder(string OrderRef)
{ <<< Breakpoint
此断点永远不会被点击,我已经配置解决方案以启动多个项目 TestApp 和 MVC 项目。
事情是,这只是前一天工作,没有做出任何改变,但几乎就像调试器刚决定上床睡觉一样。
但是我还检查了 IIS Express TraceFiles ,在那里我可以看到请求完成:
GENERAL_ENDPOINT_INFORMATION RemoteAddress="::1", RemotePort="51697", LocalAddress="::1", LocalPort="7368" 08:21:39.381
GENERAL_REQUEST_HEADERS Headers="Connection: Keep-Alive Host: localhost:7368" 08:21:39.381
URL_CACHE_ACCESS_START RequestURL="/api/Order?OrderRef=230" 08:21:39.381
URL_CACHE_ACCESS_END PhysicalPath="", URLInfoFromCache="false", URLInfoAddedToCache="true", ErrorCode="The operation completed successfully. (0x0)" 08:21:39.381
为什么我不能再调试 MVC 调用,甚至不能在我之外执行它们,正如我之前提到的那样,这是我前一天工作的唯一代码,从那以后我记得的是外面的代码这个方法制作了GetAsync call
我真的很感激任何帮助!
此致 克劳迪奥
这是整个代码链希望这会有所帮助:
public System.Threading.Tasks.Task DoWorkImportExport1()
{
GetOrders().Wait();
private async System.Threading.Tasks.Task GetOrders()
{
Order objVismaOrder = await GetOrder(o);
private async Task<Order> GetOrder(Order Order)
{
HttpResponseMessage response = await client.GetAsync($"{GetApiUrl(ApiUrls.GetOrder)}?OrderRef={Order.OrderRef}");