本地 WCF 服务有什么优势?

What are advantages of local WCF services?

我有几个包含业务逻辑代码的 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();

我可以做到

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

它会提高性能,因为它不会实例化服务、序列化\反序列化数据等

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

P.S。如果您对 "why you used WCF at all" 感兴趣,那么计划它们是可扩展的 WsHttpBinding 服务,远程调用。然而,这种架构被我们公司的信息安全专家所拒绝。现在,我无法选择是否继续使用 WCF。

没有优势。

如果您具备以下一项或多项条件,WCF 将受到激励:

  • 多个应用需要调用服务
  • 缓存
  • 不同业务领域的一部分
  • 单独的事务处理
  • 所有消费者都是客户端(数据库调用通常应该在服务器端)

这些东西是用于本地应用程序还是远程应用程序并不重要。

Due to security issues it is only called locally, and it will always be

如果这是一个铁定的 100% 保证,那么作为 jgaufin 是的,你最好在进程内而不是在进程外使用服务。

但是,大概该服务最初是出于某种原因在进程外托管的。最好在做出这样的改变之前知道这个原因是什么。

如果它已经使用了 netpipe,性能增益会很小,所以除非你在性能方面反对它,否则这可能不值得改变它的成本。