【发布时间】:2013-02-27 09:04:55
【问题描述】:
我目前正在开发一个 Web 服务应用程序项目,该项目将在 Windows Server 2008 上的 IIS7 中运行。Web 服务将被各种客户端、服务器外部以及同一服务器内的其他组件调用。 (其他网络服务和windows服务)
我的观点是,Web 服务的目的是公开功能,以便外部客户端可以调用它。我真的认为在同一台服务器上调用另一个 web 服务的 web 服务或在同一台服务器上调用 web 服务的 windows 服务没有多大意义。如果我错了,请纠正我?
我已经开始研究 WCF,但我很困惑。
做以下事情会更合适吗?
- 实现 WCF 服务,而不是 Web 服务项目。
- 公开两个端点:
1)一个,它将使用传统的 Web 服务绑定公开,该绑定将从外部客户端调用。
2)另一个端点,以便内部服务(其他 Web 服务或 Windows 服务)可以调用它们,假设更有效,超过安全层,因为这些是已经在服务器上运行的应用程序。
我的方法是正确的还是我把事情复杂化了?
任何可以为我指明正确方向的建议或链接表示赞赏。
谢谢
【问题讨论】:
-
不可以直接在服务器上使用其他web服务的业务层吗?
-
不,我宁愿服务作为它自己的应用程序运行,因为它需要初始化,在内存中存储一组配置参数,这些参数会一直使用。如果其他客户直接调用业务层,他们将不得不自己处理所有这些。此外,任何更新都需要他们更新那里的引用、重新安装等。
-
使用 TCP 端点然后我认为仅在本地主机上没有安全性将是我认为的最佳方式。不确定您是否可以获得比这样做更好的性能。查看统计链接stackoverflow.com/questions/4519963/…
-
当服务和客户端在同一台机器上时,使用命名管道而不是“没有安全性的 TCP”。
标签: c# wcf web-services iis iis-7