我们有Web应用程序(由IIS托管的ASP.Net Core)在客户的计算机(位于NAT后面)上运行。
手机或连接到Internet的任何其他设备都应该可以访问Web应用程序。
限制:
我们希望像HTTP中继服务器之类的东西将客户端请求转发到相应的Web应用程序,反之亦然。
例如
甚至更好
我到目前为止的评价:
Microsoft Azure混合连接:
带有ThinkTecture RelayServer(https://github.com/thinktecture/relayserver)的RabbitMQ:
\RelayServer>Thinktecture.Relay.Server.exe start
[12:27:59 WRN] No SharedSecret or OAuthCertificate is configured. Please configure one of them. Continuing with a random value which will make all tokens invalid on restart.
[12:27:59 DBG] Using settings file. settings-file-name=C:\Users\schema\AppData\Local\Thinktecure\RelayServer\settings_443.config.json
[12:27:59 DBG] Loaded setting from file. origin-id=ecf0e337-c111-450a-b802-384df2fbce76
[12:27:59 INF] Configuration Result:
[Success] Name TTRelayServer
[Success] DisplayName Thinktecture RelayServer
[Success] Description Thinktecture RelayServer Process
[Success] ServiceName TTRelayServer
[12:27:59 INF] Topshelf v4.1.0.172, .NET Framework v4.0.30319.42000
[12:27:59 DBG] Starting TTRelayServer
[12:28:10 ERR] The service failed to start.
System.ServiceProcess.TimeoutException: Der Vorgang wurde nicht abgeschlossen, da der Timeout abgelaufen ist.
bei System.ServiceProcess.ServiceController.WaitForStatus(ServiceControllerStatus desiredStatus, TimeSpan timeout)
bei Topshelf.Runtime.Windows.WindowsHostEnvironment.StartService(String serviceName, TimeSpan startTimeOut)
bei Topshelf.Hosts.StartHost.Run()
问题:
建议您以良好且易于设置的替代方案,这些替代方案免费或不太昂贵。
[如果有人有使用ThinkTekture RelayServer的经验,也欢迎您分享您的想法。
有一种方法可以使用Premium Functions及其VNET Integration feature来实现。
但是这将需要Azure上的VNET与您的本地网络之间的链接,并带有诸如Site-to-Site (S2S) VPN或ExpressRoute之类的东西,而这两者都需要付出一定的代价,特别是如果还没有的话。] >
如果这是可以接受的,那么高级功能确实是解决此问题的一种方法。有一个official tutorial涵盖了这一点。作为参考,运行此程序的步骤是