ASP.NET Core razor 中的 HttpClient 异步卡住了

问题描述 投票:0回答:1

我在使用 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 core 控制台没有响应。 代码

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服务已停止...如果我尝试手动启动,则会出现错误..重新启动服务器解决了问题..服务正常启动并且来自应用程序的请求正确..

c# asp.net-core async-await dotnet-httpclient
1个回答
0
投票

WinHttp 服务已停止..无法手动运行..重新启动服务器后,服务正确启动,所有程序和测试均成功。

© www.soinside.com 2019 - 2024. All rights reserved.