我有几个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的使用有什么意义吗?
第页。S.如果你对"为什么使用WCF"感兴趣,那么计划将它们作为可扩展的WsHttpBinding服务,远程调用。然而,我们公司的信息安全专家拒绝了这种架构。现在,我无法在是否继续使用WCF之间做出选择。
没有优势。
如果你有以下一种或多种情况,WCF就会受到激励:
- 多个应用程序需要调用服务
- 缓存
- 不同业务领域的一部分
- 单独交易处理
- 所有使用者都是客户端(DB调用通常应该在服务器端)
不管这些东西是用于本地应用程序还是远程应用程序。
由于安全问题,它只在本地调用,并且始终是
如果这是一个100%的铁保证,那么是的,正如jgaufin所说,你最好在过程中消费服务,而不是在过程外消费。
然而,据推测,该服务最初是在进程外托管的,这是有原因的。在做出这样的改变之前,最好知道这个原因是什么。
如果它已经使用了netpipe,那么性能增益将很小,所以除非你在性能方面遇到它,否则这可能无法证明更改它的成本是合理的