【发布时间】:2012-02-22 18:11:20
【问题描述】:
我需要对 WCF 有所了解。
我正在开发一个客户端服务器应用程序。项目计划是这样的。
我们有一台服务器在 Windows 7 上运行 SQL Server 2008(我知道 Windows 7 不是服务器的最佳选择,但它现在有 Windows 7)。我正在计划构建 WCF 服务集群,这些服务将托管在 Windows 服务上,并在服务器端使用 net tcp 绑定。这些 WCF 服务集群处理应用程序和数据库事务的所有业务逻辑。
此时将有 25 个 Windows 客户端(未来可能会增加)运行客户端应用程序。所有客户端都在同一个局域网中,所以我猜上面的架构可以工作,所有客户端都可以使用网络 TCP 绑定访问在服务器上运行的 WCF 服务。 如果我错了,请纠正我......
我将来想做的是创建一个移动客户端应用程序或 Silverlight 客户端应用程序来访问相同的 WCF 服务...如果我在 Windows 服务中托管 WCF 服务并且如果移动客户端应用程序 / Silverlight 客户端应用程序在同一个网络(同一个 LAN)上?? (我想没有看到评论)
如果我想通过互联网访问它怎么办?可以通过 Internet 访问托管在 Windows 服务上的上述 WCF 服务吗? (如果它是 nettcp 绑定,但只能由其他 WCF 应用程序绑定 - 请参阅 cmets)
如果不能,我可以为 WCF 服务创建 http 基本端点,同时将其托管在 Windows 服务中并可以通过 Internet 访问吗??
如果不能,我可以在 Windows 服务和 IIS 中托管相同的 WCF 服务吗??
如果您希望通过 LAN 和 Internet 访问 WCF,最好的选择是什么??
【问题讨论】:
-
我想经过一番研究,我发现 nettcp 绑定允许通过 Internet 进行通信,但只能与另一个 WCF 应用程序通信。因此,公开服务的目的是由任何其他客户端使用,然后 WCF 客户端应用程序更好地使用 basichttpbinding ...
-
nettcp 绑定仍然可以在内网计算机上工作 - 计算机通信 ...
-
假设您允许连接(端口转发或设置 DMZ)并且客户端可以使用 nettcp,我认为没有问题。但是,正如另一位用户所建议的那样,如果您正在寻找跨多个客户端的可访问性,那么使用基本的 httpbinding/soap 端点可能会更好。
标签: wcf windows-services nettcpbinding basichttpbinding servicehost