ASP.NET 中的 HttpClient Core razor 异步卡住
HttpClient in ASP.NET Core razor async stuck
我在将 ASP.NET Core 与托管在 IIS(而非 IIS Express)中的应用程序一起使用时遇到问题...
这是我的配置:
启动:
services.addHttpClient()
页数:
private readonly IHttpClientFactory _clientFactory;
public testModel(IHttpClientFactory clientFactory)
{
_clientFactory = clientFactory;
}
public async void OnGet()
{
var client = _clientFactory.CreateClient();
client.BaseAddress = new Uri("http://localhost:37199/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// GET Method
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "apiprueba/test");
var response = await client.SendAsync(request);
}
问题:当我执行页面时,我从未得到页面的响应(测试)。它只发生在 IIS 上,而不是在 IIS Express 上。可能是什么问题?
更新:
新测试..使用简单 asp 核心控制台无响应。
代码
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Hello World!");
var client = new HttpClient();
client.BaseAddress = new Uri("http://127.0.0.1:88/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//GET Method
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "api/mensaje");
client.Timeout = TimeSpan.FromSeconds(30);
var response = await client.SendAsync(request).ConfigureAwait(false);
Console.WriteLine(response.ToString());
Console.WriteLine("Finished");
}
意思是:
结果:
本地机器:
5 秒后显示错误。
服务器:
你好世界!
_
...代码在 10 分钟后仍然 运行..没有回答错误或完成该过程..
似乎是服务器的问题...不知道为什么
更新:检查服务器后..WinHttp 服务已停止...如果我尝试手动启动会出现错误..重新启动服务器解决了问题..服务正常启动并且来自应用程序的请求是正确的..
WinHttp 服务已停止。无法手动 运行。重新启动服务器后,服务正常启动,所有程序和测试均成功。
我在将 ASP.NET Core 与托管在 IIS(而非 IIS Express)中的应用程序一起使用时遇到问题...
这是我的配置:
启动:
services.addHttpClient()
页数:
private readonly IHttpClientFactory _clientFactory;
public testModel(IHttpClientFactory clientFactory)
{
_clientFactory = clientFactory;
}
public async void OnGet()
{
var client = _clientFactory.CreateClient();
client.BaseAddress = new Uri("http://localhost:37199/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// GET Method
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "apiprueba/test");
var response = await client.SendAsync(request);
}
问题:当我执行页面时,我从未得到页面的响应(测试)。它只发生在 IIS 上,而不是在 IIS Express 上。可能是什么问题?
更新: 新测试..使用简单 asp 核心控制台无响应。 代码
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Hello World!");
var client = new HttpClient();
client.BaseAddress = new Uri("http://127.0.0.1:88/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//GET Method
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "api/mensaje");
client.Timeout = TimeSpan.FromSeconds(30);
var response = await client.SendAsync(request).ConfigureAwait(false);
Console.WriteLine(response.ToString());
Console.WriteLine("Finished");
}
意思是: 结果: 本地机器: 5 秒后显示错误。 服务器: 你好世界! _ ...代码在 10 分钟后仍然 运行..没有回答错误或完成该过程..
似乎是服务器的问题...不知道为什么
更新:检查服务器后..WinHttp 服务已停止...如果我尝试手动启动会出现错误..重新启动服务器解决了问题..服务正常启动并且来自应用程序的请求是正确的..
WinHttp 服务已停止。无法手动 运行。重新启动服务器后,服务正常启动,所有程序和测试均成功。