本地WCF服务有哪些优势?

时间:2016-04-13 06:04:46

标签: c# wcf architecture

我有几个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。如果您对“为什么一直使用WCF”感兴趣,那么计划它们是可扩展的WsHttpBinding-services,远程调用。但是,我们公司的信息安全专家拒绝了这种架构。现在,我无法选择继续使用WCF。

2 个答案:

答案 0 :(得分:2)

没有优势。

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

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

如果这些内容适用于本地或远程应用程序,则无关紧要。

答案 1 :(得分:0)

  

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

如果这是一个铁质的100%保证,那么就像jgaufin says一样,你肯定会更好地在进程中消耗服务而不是在进程外。

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

如果它已经使用了netpipe,那么性能提升会很小,所以除非你在性能方面与它相提并论,否则这可能无法证明更改它的成本。