Azure 中无法访问的终结点

Posted

技术标签:

【中文标题】Azure 中无法访问的终结点【英文标题】:Unreachable endpoint from Azure 【发布时间】: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 上记录错误,请按照此处的步骤生成一些错误日志:***.com/a/48274991/218408 【参考方案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

【讨论】:

以上是关于Azure 中无法访问的终结点的主要内容,如果未能解决你的问题,请参考以下文章

Azure 功能无法访问 Azure 文件共享

如何使用 Azure 数据工厂使用私有终结点访问 Azure Function?

如何修复 Azure WebApp 的“无法访问 Azure 资源”

从本地访问 Azure 专用终结点

Azure 函数无法访问 Azure Blob

为啥我无法在 Azure 门户中访问我的 AAD 应用注册,但我可以使用 Azure CLI 查看它?