gpt4 book ai didi

与 HTTP 服务的 Azure 混合连接

转载 作者:行者123 更新时间:2023-12-05 08:27:34 27 4
gpt4 key购买 nike

我已成功创建混合连接 (ServerA) 并将其链接到我的 Azure Web 应用程序。状态连接成功:ServerB:1010 is Defined

在我的本地计算机 (ServerA) 上,我可以连接到在 ServerB:1010 上运行的 HTTP 服务,但由于其他限制,我无法在 ServerB 上安装混合连接管理器。

如果我在 Azure Web App 中使用 WebClient.UploadData('ServerB:1010', data[]),我会收到以下错误。

无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 尝试以访问权限禁止的方式访问套接字。

如果我连接到也可以从此服务器访问的数据库服务器 MySql 或 Oracle,我不会遇到任何问题

最佳答案

I have created successfully a Hybrid Connection (ServerA) and linked it to my Azure Web App.

删除它并添加一个到服务器 B 的混合连接。在服务器 A 上安装混合连接管理器。 HCM 将充当反向代理。

混合连接并不关心哪台服务器安装了 HCM,只要该服务器可以访问您在新建 > 混合连接门户边栏选项卡中指定的 DNS 名称即可。

WebClient.UploadData('ServerB:1010', data[]) 的示例流量:

Web App ---> Hybrid Connection ---> HCM on Server A ---> 1010/TCP on Server B.
<--- <--- <---

有一种更简单的测试方法。打开 Kudu 控制台并执行

tcpping ServerB:1010

更正:tcpping 测试非常具有误导性,因为您握手的是混合连接的 Azure 端,而不是本地应用程序的 TCP 端点。即使本地的东西没有连接,这也可能会很高兴地回复你。这就是我的意思:
tcpping is bad

始终在应用程序层进行测试(例如使用 Kudu Console 中的 curl.exe http://webservice.corp.local )

您必须使用名称而不是 IP 地址。使用完整的 FQDN 在门户设置和代码中引用 ServerA 和 ServerB。混合连接的工作原理是在操作系统级别拦截 DNS 调用并将其解析为神奇的 127.0.0.x,然后通过混合连接将其路由到本地。

TL;DR 版本:

而不是

10.10.10.2:1010

使用

ServerB.domain.local:1010

无论是在门户设置中还是在代码中引用本地主机时。

如果您使用 IP 地址而不是名称,会发生以下情况:

IP Address

在 Kudu 的 DebugConsole 中:

D:\home>nameresolver 192.168.0.4
Server: Default

Non-authoritative answer:
Name: 192.168.0.4
Addresses: 127.0.0.3


D:\home>tcpping 192.168.0.4:80
Connection attempt failed: An attempt was made to access a socket in a way forbidden by its access permissions 192.168.0.4:80
Connection attempt failed: An attempt was made to access a socket in a way forbidden by its access permissions 192.168.0.4:80
Connection attempt failed: An attempt was made to access a socket in a way forbidden by its access permissions 192.168.0.4:80
Connection attempt failed: An attempt was made to access a socket in a way forbidden by its access permissions 192.168.0.4:80
Complete: 0/4 successfull attempts (0%). Average success time: 0ms


D:\home>curl -s 192.168.0.4
This is iisstart.htm from IIS 8.5 on Windows Server 2012 R2, on-prem.

因此,根据您调用的 API(采用 192.168.0.4 作为 FQDN 与 IP 地址的 API),它有点有效。

关于与 HTTP 服务的 Azure 混合连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com