【问题标题】:Unreachable endpoint from AzureAzure 中无法访问的终结点
【发布时间】:2021-12-09 05:58:16
【问题描述】:

我正在尝试从 Azure 函数访问托管 json 的端点。 我可以在浏览器中或在执行代码时从我的机器访问 url。 但是从 Azure 我不断收到 406。 代码很简单,如下:

var client = new HttpClient();
client.DefaultRequestHeaders
      .Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync(endpointurl);
response.EnsureSuccessStatusCode();

当托管在 Azure 上时,这一直给我 406,而不是本地... 知道如何获取更多信息吗?如何调试/修复它?

谢谢

【问题讨论】:

  • 尝试删除client.DefaultRequestHeaders 行的代码。如果这不起作用,那么要在 azure 上记录错误,请按照此处的步骤生成一些错误日志:stackoverflow.com/a/48274991/218408

标签: c# asp.net-mvc azure azure-functions


【解决方案1】:

406 是 HTTP 响应状态代码之一,表示某些内容不可接受。

根据您的代码,我们正在请求带有 Accept 标头的内容,但服务器无法满足它。

另外,由于 406 将在 4XX 下,即客户端错误响应。

在我们的例子中,我们请求服务器返回特定的内容类型。例如:接受:application/jsonapplication/xml,因此这里的服务器无法响应请求的匹配内容类型。这导致抛出406 Not Acceptable error

导致错误的最可能情况是端点 URL,它显示可以访问它。正如您提到的它在本地工作,应该有一些参数分配。就像将 local.settings.json 等连接添加到 Azure 门户中的应用程序设置,将 CORS 添加到您的端点..

检查来自MS Docs 的私有端点信息

要了解有关 406 Not Acceptable Error 的更多信息,请参阅博客,感谢airbrake.io

【讨论】:

    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多