WCF服务和内部客户端的性能问题

时间:2015-08-19 05:11:10

标签: c# asp.net web-services wcf

在基于Asp.Net Mvc的大型模块化Web应用程序中,我实现了WCF自托管机制,以便为每个模块提供相互通信。这对我来说是一个很好的做法,因为通过这种机制,模块已经独立,没有任何直接参考。如果我的客户能够通过WCF服务访问这些服务,则下一个优势是外部应用程序或客户端。

该机制是通过IoC功能从模块中搜索和注入服务,并使用BasicHttpBinding绑定类型托管它们。

此外,服务的端点是在特定网址和服务名称中配置的(例如,考虑MyServicehttp://localhost:8080/Services/MyService

Imagination the scenario

我关注的是应用程序流程中模块的通信性能,它们是同一台机器,IIS中的相同流程,与外部客户端不同。

外部客户端与通信层内部客户端之间是否有任何区别, OR NOT 它们会被相同的行为处理?

如果,哪些功能需要提高内部客户端的性能?

1 个答案:

答案 0 :(得分:1)

当您谈论外部客户端时,您必须保持您的服务必须兼容,因此您可以使用http绑定,因此来自不同平台的客户端可以使用您的服务。

但是,当你对内部客户进行跟踪时,所有人都使用.Net,你可以处理不同的事情。您可以使用tcp绑定来提高性能,因为所有客户端都是内部的。

http和tcp客户端之间存在明显的性能差异,您可以在此处看到基准:http://media.techtarget.com/TheServerSideNET/downloads/DotNet-WebSphere_Web_Services_Benchmark.pdf

因此,您可以提高服务的性能,同时接受http和tcp绑定,并将内部客户端设置为通过tcp绑定使用您的服务。

这里也是一个讨论tcp和http绑定的好链接:TCP Vs. Http Benchmark

希望它有所帮助。