繁体   English   中英

WCF同时服务多个用户

[英]WCF service Multiple Users at same time

我将基于WCF部署我的第一个应用程序,并且想知道最佳的部署方法。 这是我的建筑。 请参阅所附图片。

我们有一个使用4.0框架编写的WCF,并且有3种方法。 前端ASP.NET网站(www.site.com)调用WCF来保存数据以及读取数据。 在图中,方法1正在保存到数据中,方法2和3用于从SQL Server 2008 R2数据库读取数据。

在我的ASP.Net网站上...

  1. 我正在调用Method1并关闭连接...是这样的。ServiceClient ServiceClient client = new ServiceClient(); client.Method1(data to be saved) client.close(); ServiceClient client = new ServiceClient(); client.Method1(data to be saved) client.close();

  2. 我按如下方式调用方法2和3: ServiceClient client = new ServiceClient(); dropDown1list.datasource = client.Method2() dropDown2list.datasource = client.Method3() client.close(); ServiceClient client = new ServiceClient(); dropDown1list.datasource = client.Method2() dropDown2list.datasource = client.Method3() client.close();

多个用户可能同时使用该网站来提交数据。 考虑这种体系结构。什么是部署WCF以便同时处理多个用户的最佳方法? 我阅读了http://www.codeproject.com/Articles/89858/WCF-Concurrency-Single-Multiple-and-Reentrant-andhttp://www.codeproject.com/Articles/86007/ways-to-做WCF实例管理每个调用每个

我现在认为我需要拥有WCF服务

 [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple ,  InstanceContextMode = InstanceContextMode.PerCall )]
public class Service : IService
{
   public bool Method1(data to be saved)
    {

    }

    public List<string> Method2()
    {

    }
    public List<string> Method2()
    {

    }

}

我对吗 ?。 有什么建议么 ?。 在此处输入图片说明

昨天刚刚回答了类似的问题。 根据您的描述和图片,我认为不需要更改您的体系结构。 如果您使用的是主要的WCF绑定之一(webHttpBinding,wsHttpBinding或BasicHTTPBinding),则您部署的服务应该能够轻松处理数十个并发用户,所有这些用户都可以同时保存和读取。

每个客户端请求都将生成自己的连接和Web服务对象,无论该请求是读取数据还是写入数据,每个对象都可以与数据库并发通信。 当响应发送回客户端时,只要您不做任何奇怪的事情,您的WCF服务就会破坏对象并为您清理内存。

最近两年来,我一直在工业规模的WCF Web服务上工作。 最近,我一直在进行一个负载测试/基准测试项目,该项目可以旋转数百个并发用户,每个用户都使用XML工件猛击我们的WCF测试服务器,这些工件被加载到数据库中。 我们已经成功地每秒最多加载160个程序包(每个客户端大约110kb)。 WCF并不完美,但是它快速,干净并且扩展性非常好。

我的经验是,数据库将成为瓶颈,而不是WCF Web服务。 如果您的客户希望将此架构扩展到Amazon大小的Web服务,则可以引入F5负载均衡器并以此方式进行扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM