我们在客户的计算机(在 NAT 后面)上运行 Web 应用程序(由 IIS 托管的 ASP.Net Core)。
连接到 Internet 的手机或任何其他设备应该可以访问 Web 应用程序。
限制:
- 没有公共IP地址。
- 我们不想为客户配置动态 DNS,因为我们不提供用于互联网访问的硬件和软件。
我们想要像 http 中继服务器这样的东西来将客户端请求转发到相应的 Web 应用程序,反之亦然。
例如
- www.example.org/c1 转到客户 1 的 PC 上的 Web 应用程序
- www.example.org/c2 转到客户 2 的 PC 上的 Web 应用程序
甚至更好
- c1.example.org/ 转到客户 1 的 PC 上的 Web 应用程序
- c2.example.org/ 转到客户 2 的 PC 上的 Web 应用程序
到目前为止我评估的内容:
Microsoft Azure 混合连接:
- 我仍在努力在 Web 应用程序上执行登录 - 尽管其他 cookie 似乎工作正常,但浏览器没有获取身份验证 cookie。
- 价格标签相当高,我们很难向农民客户收费,并且总是敦促为任何事情支付尽可能少的钱。
RabbitMQ 与 ThinkTecture RelayServer ( https://github.com/thinktecture/relayserver ):
- 我还不能让 RelayServer 插件工作。
- 这是我得到的错误跟踪:
\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()
- RabbitMQ 已启动并正在运行,我正在尝试成功实现几个教程。
问题:
对于免费或不太昂贵的良好且易于设置的替代方案,建议将不胜感激。
如果有人对 ThinkTekture RelayServer 有经验,也欢迎您分享您的想法。