[英]WPF App exits without response or exception at HttpClient PostAsync method
我经历了几个 SO 和论坛 - 花了几个小时尝试我在这些网站上找到的几个答案/评论。 我仍然无法解决问题。
注 1:它以前在我的笔记本电脑上工作过 - 所有进一步的开发都是在一个单独的分支上进行的。 原始分支和新分支都不起作用。 它适用于我队友的笔记本电脑,但我们仍然无法找出问题所在。
注 2:我尝试在单独的目录中重新克隆原始分支,但也失败了。 同样,我们无法在我队友的系统上重现该问题。
环境 - Windows 10、Visual Studio 2019、WPF 应用程序(.NET Framework 4.8)、C# 8
public class SomeClient
{
private readonly string _host;
private readonly HttpClient _client;
public SomeClient(HttpClient client, string host)
{
_host = host;
_client = client;
}
public async Task<string> GetResponse(string request)
{
HttpContent content = new StringContent(request, Encoding.UTF8, "application/xml");
HttpResponseMessage body = await _client.PostAsync(_host, content);
return await body.Content.ReadAsStringAsync().ConfigureAwait(false);
}
}
调用代码(测试方法)
[TestClass]
public class SomeClientShould
{
[TestMethod]
public async Task ReturnResponse()
{
string request = "";
SomeClient client = new SomeClient(new HttpClient(), @"http:\\localhost:9888\");
string response = await client.GetResponse(request);
Assert.AreEqual("<RESPONSE>Server is Running</RESPONSE>", response);
}
}
在这里,我没有提出任何请求,而是发送一个空字符串,该字符串应该以 Assert 中显示的字符串进行响应(通过我的队友的系统,我的系统上的 Postman 也可以工作)。
我已经尝试了 ConfigureAwait(false) 的各种组合,也没有阻塞代码 - 它一直是异步的。 即使是上面显示的简单测试方法也会在 PostAsync 行之后退出而不执行下一行。 Try-Catch 没有捕捉到任何异常,我遇到了故障。
太傻了,首先在主机 uri 上犯了一个错误——斜线必须在测试项目中反过来——“http://localhost:9888/”。 所以测试现在运行。
下一个问题,在我的项目之间,我的 Microsoft.Bcl.AsyncInterfaces 库的版本不匹配。
不知何故,一个项目引用了最新版本,而另一个没有? 也许问题是在合并原始分支期间出现的 - 在我和我的队友创建我们各自的开发分支以进行进一步开发之前。 无论如何它现在有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.