.NET 4.7中C#代码发送HTTP请求时挂起问题求助
C# POST请求到本地Web服务挂起/返回状态码0,但Postman及开启Fiddler时正常
我最近遇到一个非常诡异的问题:用C#代码向本地Web服务发送POST请求时,请求经常长时间挂起,有时候甚至永久无响应,偶尔还会返回状态码0;但用Postman发送完全相同的请求,却能立刻得到200 OK的响应。
代码示例
使用HttpClient的代码:
class Program { static void Main(string[] args) { var response = new HttpClient().PostAsync("http://localhost/myservice", new StringContent("{ \"type\": \"confirmation\" }", Encoding.UTF8, "application/json")) .Result; Console.WriteLine(response.StatusCode); } }
使用RestSharp的代码(同步、异步版本均尝试过):
var client = new RestClient("http://localhost/myservice"); var request = new RestRequest("api") { Method = Method.POST }; request.AddJsonBody(new { type = "confirmation" }); var response = client.Execute(request);
补充说明
- 这段代码最初用于xUnit单元测试,在单元测试中运行也会出现同样的问题;
- 已经排除防火墙问题:已将应用加入防火墙允许规则;
- 尝试过重启机器,问题依旧;
- 分别试过使用IIS 10和IIS Express托管本地服务,都无法解决问题。
关键线索
开启Fiddler抓包时,请求能正常得到响应;关闭Fiddler后,问题立刻重现,这让我完全摸不着头脑,恳请各位大佬帮忙分析可能的原因并提供解决建议。
内容的提问来源于stack exchange,提问作者Vladimir Panchenko
相关产品推荐
相关产品推荐

