1

我目前正在开发一个 Web 服务应用程序项目,该项目将在 Windows Server 2008 上的 IIS7 中运行。Web 服务将被各种客户端、服务器外部以及同一服务器内的其他组件调用。(其他 Web 服务和 Windows 服务)

我的观点是 Web 服务的目的是公开功能,以便外部客户端可以调用它。我真的认为在同一台服务器上调用另一个 Web 服务的 Web 服务或在同一台服务器上调用一个 Web 服务的 Windows 服务没有多大意义。如果我错了,请纠正我?

我已经开始研究 WCF,但我很困惑。

执行以下操作是否更合适?

  • 代替 Web 服务项目实现 WCF 服务。
  • 公开两个端点:
    1)一个,将使用从外部客户端调用的传统 Web 服务绑定公开。
    2)另一个端点,以便内部服务(其他Web服务或Windows服务)可以调用它们,假设更有效,超过安全层,因为这些是已经在服务器上运行的应用程序。

我的方法是正确的还是我把事情复杂化了?

任何可以为我指明正确方向的建议或链接表示赞赏。

谢谢

4

2 回答 2

1

一个 Web 服务调用另一个 Web 服务?

如果他们有不同的职责,我认为将他们分开是个好主意。您可以更好地分离关注点(更容易与其他项目/代码库共享)、更容易维护和独立部署。

我会使用 WCF 并为不同的消费者提供两个不同的端点,例如使用 net.pipe 在同一服务器上进行通信(如果客户端支持它)和 http 用于外部客户端。

我认为 WCF 为您提供了比旧的 xml Web 服务更多的功能和灵活性,并且配置部分非常好。

于 2013-02-27T09:44:38.010 回答
1

BasicHttpBinding 将为您提供与外部客户端的最大互操作性。当两种服务都托管在同一台机器上时,命名管道将为您提供最佳效率。

BasicHttpBinding 就像旧的 asmx 和 XML Web 服务。

暴露两个端点是 AOK!

一项服务调用另一项服务并不罕见。

在同一台机器上托管多个服务很常见。在企业中,运行多个 SQL-Server 实例是司空见惯的。当然,这取决于硬件、服务和响应时间。

于 2013-02-28T13:41:55.320 回答