无法将localhost用于Azure混合连接的终结点主机

cbjzeqam  于 2023-05-07  发布在  其他
关注(0)|答案(2)|浏览(91)

自从我不得不为我的一个应用服务设置混合连接以来,已经有两年了。上次和这次的用例基本相同。我有一个Web API托管在两个本地机上。一个是生产箱,另一个是测试箱。同样,我有两个应用服务,一个用于生产,一个用于测试。生产应用服务需要利用生产本地机上的Web API,测试应用服务需要访问测试本地机上的Web API。
上一次,我为每个本地机顶盒设置了一个混合连接。对于两者,我使用端点主机“localhost”和相同的端口号(例如3000)。在测试盒上,我使用混合连接管理器设置到测试混合连接的连接,反之亦然,用于生产。
这样做的好处是,部署到App Services的代码库只使用http://localhost:3000调用本地API。因为每个应用服务使用不同的混合连接,所以prod应用服务使用prod本地盒,而测试应用服务使用测试本地盒。不需要确定环境并使用不同的机器名来进行API调用。
好吧,这一切都很好,除了当我今天为另一个我们需要公开的API复制这个设置时,Azure Portal不允许我使用localhost作为端点主机。

是他们改变了什么,还是我忘了怎么做?我现在是否被迫使用实际机器的名称,并使我的代码库检测环境,并基于此对不同的主机进行API调用?旧的仍然使用localhost,工作正常。如果可能的话,我更喜欢使用localhost。

7y4bm7vi

7y4bm7vi1#

无法将localhost用于Azure混合连接的终结点主机
如MSDoc中所述,如果您的应用程序部署在Windows App Service上,请不要使用localhost
如果您在Linux上使用App Service,请确保您没有使用“localhost”作为端点主机。如果您尝试创建与本地计算机上的资源的连接,请使用您的计算机名。
我在WindowsLinux应用服务中都试过,但得到了同样的问题。

名称名称是保留的。
换句话说,该错误指示名称localhost已被使用。确保之前没有使用过。
我试过使用IP Address没有任何问题,

感谢@devblogs的解释。
根据Developer Support Doc,它明确表示不要使用localhost
我强烈建议不要使用localhost,因为当你有多个HCM时,它会有点混乱。
旧的仍然使用localhost,工作正常。如果可能的话,我更喜欢使用localhost。
可能是Azure对现有配置进行了更改。

yduiuuwa

yduiuuwa2#

正如在另一个答案中所解释的,Azure不再允许以这种方式使用localhost。我能够克服这个问题,同时仍然只保留一个URL在我的所有环境中使用。我所做的是:
1.在我需要连接的每台机器/环境上,我都编辑了hosts file(我所有的机器都是Windows,但其他系统也有类似的东西)。我选择了一个假的“域名”(例如:my-hybrid-connection)并将其设置为指向127.0.0.1(即localhost)。
1.因为这些机器在IIS上运行多个网站,所以我将这个连接绑定到一个特定的端口(例如3000)。
1.每个环境都有一个服务总线命名空间。在每一个中,我注册了一个混合连接,并将端点指定为my-hybrid-connection:3000
1.在我的应用程序中,我现在可以调用http://my-hybrid-connection:3000。每个环境都有自己的App Service,并且每个环境都使用步骤3中提到的相应的单独名称空间。因此,无论环境如何,对该URL的调用都将转到正确的机器。

相关问题