【问题标题】:Can WCF hosted in Windows Service accessible over internet?可以通过 Internet 访问 Windows 服务中托管的 WCF 吗?
【发布时间】: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


【解决方案1】:

关于 WCF 的一个很好的好处是,您可以尽可能地发布有关托管、协议、绑定的 pone 决策。如果您需要私有 WCF 服务,只需使用 nettcp 绑定。如果您想将此扩展到互联网,您可以随时添加其他绑定。

您始终可以将托管决策从 Windows 服务更改为 IIS。比较简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-23
    • 2011-07-13
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2014-08-18
    • 1970-01-01
    相关资源
    最近更新 更多