Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务间WCF REST调用是应用程序组件之间通信的最佳方式吗?_C#_Asp.net_Web Services_Wcf_Rest - Fatal编程技术网

C# 服务间WCF REST调用是应用程序组件之间通信的最佳方式吗?

C# 服务间WCF REST调用是应用程序组件之间通信的最佳方式吗?,c#,asp.net,web-services,wcf,rest,C#,Asp.net,Web Services,Wcf,Rest,作为促进应用程序横向扩展的解耦过程的一部分,我们正在慢慢地将应用程序的无状态部分分成不同的服务,这些服务要么在同一个AWS IIS实例上提供,要么在需要时分拆到新的服务上 很明显,组成web服务的一些服务是解耦的理想候选。但是,我不确定WCF REST呼叫是否是相互通信的最佳方式 通过WCF在托管应用程序中提供组件间通信的最佳解决方案是什么?目前,这些服务没有框架限制,所以任何.net都可以。Rest只有在您从一个客户端调用服务时才有用,因为您对该客户端的控制较少,并且需要提供一个标准接口,或者

作为促进应用程序横向扩展的解耦过程的一部分,我们正在慢慢地将应用程序的无状态部分分成不同的服务,这些服务要么在同一个AWS IIS实例上提供,要么在需要时分拆到新的服务上

很明显,组成web服务的一些服务是解耦的理想候选。但是,我不确定WCF REST呼叫是否是相互通信的最佳方式


通过WCF在托管应用程序中提供组件间通信的最佳解决方案是什么?目前,这些服务没有框架限制,所以任何.net都可以。

Rest只有在您从一个客户端调用服务时才有用,因为您对该客户端的控制较少,并且需要提供一个标准接口,或者在必须使用http协议的web上进行调用

如果您有一个客户机由您控制的系统,并且可以使用任何机制调用服务,那么请使用一个更高效的通信系统。如果您使用WCF,您可以使用更快的net.tcpip协议(或更快的WWS),或者全力以赴使用协议缓冲区、节俭或其他RPC来获得最佳性能


我还将在IIS之外以专用服务的形式运行这些服务,以减少它们对整个web基础设施的依赖。然后,您可以将它们部署在任何框中,并在没有“单一文化”风险的情况下硬化它们,或者在C++中重写它们的效率。

< P>如果您处于完整的.NET环境中,则不使用REST使用WCF,这样客户端可以轻松地创建本地类引用,并且能够很容易地通过Web服务层进行通信。理想情况下,如果确实需要最佳解决方案,请将服务公开(并使用)为net.tcp绑定

在涉及XML和/或JSON的情况下,让其余(ful)端点通过WCF公开以供web客户端使用


WCF的最大好处是可以在同一个契约(接口)上公开多个端点,因此可以通过一个端点公开.NET中间层,而其他服务可以通过web端点(如webHttpBinding)从需要它的客户端公开

我正在考虑使用WCF net.tcp发送序列化对象。它足够满足我的需要,并且允许我坚持我或多或少知道的东西,并且能够在IIS、独立或服务之间切换。这是一个看起来很有希望的特性,因为我现在可以创建服务本身,但可以配置以后如何公开,甚至可以同时适应不同的消费。