C# 本地WCF服务的优势是什么?

C# 本地WCF服务的优势是什么?,c#,wcf,architecture,C#,Wcf,Architecture,我有几个包含业务逻辑代码的WCF服务,托管在IIS上。 由于安全问题它只在本地调用,并且总是 我在考虑将自托管应用程序与NetPipe绑定一起使用时遇到了一个问题:在我的例子中,使用WCF有任何优势吗?我可以直接使用这些库 因此,与其 // Server ServiceHost sh = new ServiceHost(typeof(MyService), new Uri("http://localhost:3000/myser

我有几个包含业务逻辑代码的WCF服务,托管在IIS上。
由于安全问题它只在本地调用,并且总是
我在考虑将自托管应用程序与NetPipe绑定一起使用时遇到了一个问题:在我的例子中,使用WCF有任何优势吗?我可以直接使用这些库

因此,与其

// Server
ServiceHost sh = new ServiceHost(typeof(MyService), 
                                 new Uri("http://localhost:3000/myservice"));
sh.Open();

// Client
var ch = ChannelFactory<IMyService>.CreateChannel(new BasicHttpBinding(), 
             new EndpointAddress("http://localhost:3000/myservice"));
var result = ch.MyMethod();
它将提高性能,因为它不会实例化服务、序列化\反序列化数据等

在我的例子中,除了可伸缩性和弹性之外,WCF还有什么优势?不放弃使用WCF有什么意义吗

另外,如果您对“为什么使用WCF”感兴趣,那么我们计划它们是可伸缩的WsHttpBinding服务,称为远程。然而,我们公司的信息安全专家拒绝了这种体系结构。现在,我无法选择是否继续使用WCF。

没有任何优势

如果您有以下一项或多项,WCF将受到激励:

  • 多个应用程序需要调用这些服务
  • 缓存
  • 不同业务领域的一部分
  • 独立交易处理
  • 所有使用者都是客户端(DB调用通常应在服务器端)
不管这些东西是用于本地还是远程应用程序

由于安全问题,它只在本地调用,并且将始终在本地调用

如果这是一个铁证如山的100%保证,那么作为jgaufin,您肯定会更好地使用过程中的服务,而不是过程外的服务

然而,可能是由于某种原因,服务最初是在进程外托管的。在做出这样的改变之前,最好知道这个原因是什么

如果它已经使用了netpipe,那么性能增益将很小,因此,除非您在性能方面遇到困难,否则这可能无法证明更改它的成本是合理的

var result = new MyService().MyMethod();