【发布时间】:2020-02-19 01:33:43
【问题描述】:
问题:通过控制台应用程序访问本地托管的API时,HttpClient返回503“服务不可用”,而使用Edge可以成功访问。我是否缺少一些配置?
代码:
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace SampleClient
{
public class Program
{
private static HttpClient Client = new HttpClient();
public static async Task Main(string[] args)
{
Console.WriteLine("Starting connections");
for(int i = 0; i<5; i++)
{
var result = await Client.GetAsync("http://localhost:5100/api/contacts");
//var result = await Client.GetAsync("https://stackoverflow.com/");
Console.WriteLine(result.StatusCode);
}
Console.WriteLine("Connections done");
}
}
}
--- 构建---
dotnet 构建
适用于 .NET Core 的 Microsoft (R) Build Engine 版本 16.5.0-preview-20064-06+86d9494e4 版权所有 (C) 微软公司。保留所有权利。
...
构建成功。 0 个警告 0 个错误
样本输出:screenshot
【问题讨论】:
-
在你的api端,请开启debug级别的日志,查看日志是否有错误
-
如果您尝试在调用
GetAsync之前添加Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json"));会怎样? -
即使我清除了标题,仍然是错误。
-
@ElendilZheng-MSFT 我认为 API 工作正常。如截图所示,它可以显示在 Edge 中。 (即使在 firefox、chrome 和 postman 中)
-
在执行 Get to localhost:5100 之前,您是否启动了 .net 核心托管实例或 IIS 网站/应用程序池?
标签: asp.net asp.net-core dotnet-httpclient