我有几个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。
答案 0 :(得分:2)
没有优势。
如果您有以下一项或多项内容,WCF会受到激励:
如果这些内容适用于本地或远程应用程序,则无关紧要。
答案 1 :(得分:0)
由于安全问题,它仅在本地调用,并且始终为
如果这是一个铁质的100%保证,那么就像jgaufin says一样,你肯定会更好地在进程中消耗服务而不是在进程外。
但是,据推测,该服务最初是由于某种原因而在进程外托管的。在做出这样的改变之前,最好知道这个原因是什么。
如果它已经使用了netpipe,那么性能提升会很小,所以除非你在性能方面与它相提并论,否则这可能无法证明更改它的成本。