调用WCF服务后需及时关闭

       调用WCF服务跟使用数据库连接一样,要注意及时关闭,如果没有及时很容易就会是连接数过多造成服务器崩溃。

       测试环境:vs2010+ .NET Framework3.5+vs2010自带的WebServer(在不同的环境会有不同的结果)。

                     WCF服务使用环境自带的

       测试代码:

 1:  protected void Page_Load(object sender, EventArgs e)
 2:  {
 3:      try
 4:      {
 5:          for (int i = 0; i < 1000; i++)
 6:          {
 7:              localhost.Service1Client wcf = new localhost.Service1Client();
 8:              wcf.GetData(1);
 9:              //wcf.Close();
10:              Response.Write(i + "<br/>");
11:          }
12:      }
13:      catch (Exception ex)
14:      {
15:          Response.Write(ex.Message);
16:      }
17:  }
18:   

       模拟创建1000个连接访问WCF。

       运行结果:

image

         创建10个连接WebServer就崩溃了。(有些人说WebServer没有连接数的限制,那是错误的)。

 

         创建连接调用后立即关闭(调用Close()事件):

 1:  protected void Page_Load(object sender, EventArgs e)
 2:  {
 3:      try
 4:      {
 5:          for (int i = 0; i < 1000; i++)
 6:          {
 7:              localhost.Service1Client wcf = new localhost.Service1Client();
 8:              wcf.GetData(1);
 9:              wcf.Close();
10:              Response.Write(i + "<br/>");
11:          }
12:      }
13:      catch (Exception ex)
14:      {
15:          Response.Write(ex.Message);
16:      }
17:  }
18:   

         运行结果:

image

       使用vs2010是上图的测试结果,在VS2008环境中,创建不到800个的连接也会使WebServer崩溃。

       如果使用.NET Framework4.0,没有调用Close()也是可以创建全部1000个连接。

       总之,最好的处理方式是不管在什么环境都要及时关闭调用连接,避免应连接数过多造成服务崩溃。

转载于:https://www.cnblogs.com/zhaozhan/archive/2010/11/14/1876922.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值