Azure .NET Core WebAPI抱怨HttpClient.GetAsync()

时间:2019-06-04 03:34:15

标签: azure asp.net-core httpclient

正在运行.netcore 2.2 WebAPI,并且该应用程序运行良好,并返回所有打印机供应商的列表。 printerVendors是PrintersController中作为Windows服务自托管.NET应用程序运行的方法。 当我将API发布到我的Azure资源WebAPI .NET Core时,出现了错误:

  

“试图以一种其访问权限禁止的方式访问套接字”。

此外,代码指向client.GetAsync或client.PostAsync行。

我试图保留HttpClient的一个实例,但是它解决了问题。谷歌搜索,我看到类似Azure的东西限制了HttpC调用的数量,我需要扩展该限制。我不知道这是否是解决这类问题的新方法

private static HttpClient client = new HttpClient { BaseAddress = new Uri("http://localhost:43634/") };

[HttpGet("GetPrinterVendorslist")]
public async Task<IActionResult> GetPrinterVendorslist()
{
    _logger?.LogDebug("'{0}' has been invoked", nameof(GetPrinterVendorslist));

    try
    {
        client.DefaultRequestHeaders.Accept.Clear();
        var response = await client.GetAsync("api/printers/GetVendorsList");
        var httpContent = response.Content;

        var result = await httpContent.ReadAsStringAsync();
        var variables = JsonConvert.DeserializeObject(result);

        return Ok(variables);
    }
    catch (Exception ex)
    {
        _logger?.LogCritical("There was an error on '{0}' invocation: {1}", nameof(GetPrinterVendorslist), ex);
        return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
     }
}

1 个答案:

答案 0 :(得分:0)

通过在网络配置中添加例外解决了该问题。我也列出了运行我的本地Windows服务的端口。