【问题标题】:What are advantages of local WCF services?本地 WCF 服务有哪些优势?
【发布时间】:2016-08-04 01:07:01
【问题描述】:

我有几个 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 的使用有什么意义吗?

附:如果您对“为什么要使用 WCF”感兴趣,那么计划将它们是可伸缩的 WsHttpBinding-services,远程调用。但是,这种架构被我们公司的信息安全专家拒绝了。现在,我无法选择是否继续使用 WCF。

【问题讨论】:

    标签: c# wcf architecture


    【解决方案1】:

    没有优势。

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

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

    这些东西是用于本地应用程序还是远程应用程序都没有关系。

    【讨论】:

      【解决方案2】:

      由于安全问题,它只在本地调用,并且永远是

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-12-11
        • 1970-01-01
        • 2010-12-03
        • 2011-06-14
        • 2011-01-13
        • 1970-01-01
        • 2020-12-16
        • 2010-10-31
        • 1970-01-01
        相关资源
        最近更新 更多