2

我有一个使用 WCF 服务的 winforms 应用程序。到目前为止,WCF 服务是本地 pc 上的自托管服务。它包含几个接口(每个程序功能一个)。作为一项改进,我想将服务公开给互联网,这样我就可以使用新的移动应用程序调用它。这可以通过配置路由器/防火墙并使用某种动态 dns 或记住 IP 地址来轻松完成(在最坏的情况下)。

但是现在,真正的问题来了:下一步,我会将 winforms 应用程序分发到多个位置(称为客户),并与他们的移动应用程序中的本地 WCF 服务一起。为了让客户连接到他们的 wcf 服务(使用移动应用程序),我现在可以为每个客户设置一个动态 dns,但我不想这样做。首先,最好的 dyndns 服务不是免费的,或者你必须定期更新。其次,我想为客户提供我自己的 dns 服务,以便我可以将他们的 wcf 呼叫“转发”到他们自己的本地服务。wcfdnsrouter 应该位于公共网络主机上,客户的 ip 地址由 ip-updater 提供(其他 dyndns 服务通常是这种情况)

例如,想象一下:

客户 A;IP1; 端点:http ://wcfdnsrouter.com/A

客户乙;IP2; 端点:http ://wcfdnsrouter.com/B

我希望 wcfdnsrouter.com/ A将所有呼叫转发(或路由?)到IP1 和 wcfdnsrouter.com/ B将转发(或路由?)所有呼叫到IP2

在这种情况下,客户可以从地球上的每个地方使用移动应用程序访问他的服务。客户现场的硬件配置不是问题。

目标是使用一个参数,而不是为每个客户设置一个其他 url。这应该会减少配置并避免重复我的服务。但是,它仍然是一个开放的trace(在这种情况下,我需要创建一个子域并复制wcfdnsrouter,这无非是一个普通的routingservice)。

因此,入口点似乎是一个将消息路由到另一个 ip address\service 的 restfull 服务。我已经对路由服务进行了一些研究,但我想我不会得到我想要的。基于内容的路由不是一个选项,因为我不想将所有接口都更改为具有标准。我看不到如何在 restfull 服务中的参数与我需要调用的 ip 地址之间建立链接(所以是另一个服务)。

目前,安全性并不是真正的问题。

请注意,问题与(免费)dns 服务无关。目的是自己创造。在示例中,激活新客户不应该只是安装 auto-ip-updater 并分配某种代码(如 A 和 B)。

我需要一些建议如何做到这一点。也许我在考虑路由时走错了路?也许有一种我想念的非常简单的方法?

提前致谢!

4

0 回答 0