【问题标题】:How to connect to an external service on a non-standard port from an Azure App Service?如何从 Azure 应用服务连接到非标准端口上的外部服务?
【发布时间】:2017-07-11 07:08:22
【问题描述】:

我正在尝试从 Azure 应用服务(理想情况下是 Functions,但 Web 应用可以)访问第三方服务。但是,此服务托管在非标准端口上,例如https://myservice.com:445

我正在使用 System.Net.Http.HttpClient 发出 POST 请求,但始终得到 SocketException

发送请求时出错。无法连接到远程服务器尝试以访问权限 1.2.3.4:445 禁止的方式访问套接字

代码在我的本地环境(函数模拟器或 Kestrel)上运行,但在 Azure 上失败。我尝试使用托管在常规 https 端点上的服务,例如https://myotherservice.com,通话正常。

我假设有某种出站防火墙规则阻止了第一次呼叫,但我还没有找到任何配置选项来禁用它。可能吗?很遗憾,我无法更改我需要调用的服务的端点。

【问题讨论】:

  • 对出站 IP 地址和端口没有限制。您确定服务本身没有某种白名单吗?
  • @Mikhail 没有白名单,可以从 Internet 访问该服务。它确实使用自签名证书。我想知道是否出于某种原因这可能是异常的根源......
  • 您能否直接或间接分享您的应用程序名称 (github.com/Azure/azure-webjobs-sdk-script/wiki/…),以便我们排除其他潜在问题?这是否始终如一地发生?还是零星的?
  • @FabioCavalcante 谢谢,即使在更改服务器证书之后,这种情况也会持续发生。这里是执行时间戳,希望对您有所帮助:2017-07-10T09:42:48.934 Function started (Id=a51aeb14-dacc-46cc-9e8b-5539301b996f)(西欧)
  • 感谢您的信息。我在下面的发现中添加了答案。

标签: azure firewall azure-functions azure-web-app-service


【解决方案1】:

在检查了您的应用程序后,我确实发现那些传出请求被基础架构阻止了。

我还能够在此处找到涵盖这些端口的公共文档: https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#restricted-outgoing-ports

【讨论】:

  • 65531 个端口可用,我们选择了 4 个不起作用的端口之一 ? 这绝对是问题所在,但是我永远找不到您链接的文档,主要是因为它们没有在 Microsoft 或 Azure 站点上。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多