我们正在尝试为我们的系统布局新的网络拓扑。目前,我们将 WCF 作为 Windows 服务托管,该服务公开 HTTP、HTTPS、NET TCP,现在还公开 AJAX 服务端点...
有谁知道是否可以将我们的 WCF 移至 IIS,同时仍具有相同的暴露端点并利用 IIS 群集和 NLB?这些暴露的端点可以成为 NLB 的一部分吗?不确定它是如何工作的,我一直在做一些研究,但找不到任何可以解决这些问题的东西。
我对 WCF 和 IIS 有点陌生,我们目前正处于该项目的研究阶段,因此任何意见或建议都将受到欢迎和赞赏。
最佳答案
只要您已启用 WAS,您就可以将服务托管从 Windows 服务移至 IIS,这将是 tcp 绑定(bind)请求所必需的。
您必须重新配置服务才能支持负载平衡,因此请查看以下文章,作为了解负载平衡的有用起点。
Things to Consider When Implementing a Load Balancer with WCF
Load Balancing with the Basic HTTP Binding
需要考虑的问题:
您是否使用启用 session 的合约?服务行为是否使用PerSession?您是否开启了可靠的消息传递功能? session 和可靠 session 对于特定服务器而言是本地的,因此故障转移需要创建新 session 。客户端必须通过创建新 channel (代理)来启动此操作。
其他有用的文章:
关于wcf - 使用 NLB 在 IIS 中托管自定义 WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11159017/