我应该使用各种端点的Web服务或wcf服务吗? (Web服务在同一台服务器上调用另一个Web服务?)

时间:2013-02-27 09:04:56

标签: c# wcf web-services iis iis-7

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

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

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

执行以下操作会更合适吗?

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

我的方法是正确的还是我过于复杂?

任何能够指出正确方向的建议或链接都​​会受到赞赏。

由于

2 个答案:

答案 0 :(得分:1)

  

调用其他网络服务的网络服务?

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

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

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

答案 1 :(得分:1)

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

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

公开两个端点是AOK!

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

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