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/json
或 application/xml
,因此这里的服务器无法响应请求的匹配内容类型。这导致抛出406 Not Acceptable error
。
导致错误的最可能情况是端点 URL,它显示可以访问它。正如您提到的它在本地工作,应该有一些参数分配。就像将 local.settings.json 等连接添加到 Azure 门户中的应用程序设置,将 CORS 添加到您的端点..
检查来自MS Docs 的私有端点信息
要了解有关 406 Not Acceptable Error 的更多信息,请参阅博客,感谢airbrake.io
【讨论】:
以上是关于Azure 中无法访问的终结点的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Azure 数据工厂使用私有终结点访问 Azure Function?