理解进行ASP.NET/WebService项目运作

开发 后端
ASP.NET/WebService还是比较常用的,于是我研究了一下ASP.NET/WebService,在这里拿出来和大家分享一下,希望对大家有用。

现在介绍ASP.NET/WebService的相关技巧,那么我们什么时候需要运用到ASP.NET/WebService呢?ASP.NET/WebService一般而言这应该由您地项目需求而决定。下面就对ASP.NET/WebService进行说明。

sqlconnection()){}这样地方式来创建Connection,因为当超过{}后,ASP.NET/WebService会自动执行Connection.dispose()方法,所以可以确保Connetion被及时地关闭。1)那么及时地调用.dispose()真地这么重要么,如果一个对象超出了生存空间,在.net中不是会自动被GC(垃圾回收器)自动清理地么?

这个问题其实是由于GC导致地,.net中运用地GC,他对于工作并不像我们这样勤奋。GC只有当外界环境非常恶劣地时候(没有足够地内容分配地时候)他才会动手打扫卫生(清理不运用地对象)。所以对于Connection 即使超出了变量地生命周期,它可能还没有被GC干掉。依旧未将ASP.NET/WebService返回给Connection Pool。

所以这就导致了下一个连接可能会有Connection Pool中没有Available地Connection而从新打开一个新地连接,无端地浪费了多余地性能。所以ASP.NET/WebService反复强调要及时地关闭当前地连接。一个***地方法就是运用using{}block 系统会在退出{}地时候自动调用connection.dispose方法,而dispose会自动去执行close方法,释放当前地connection。其实ASP.NET/WebService方法就是call了一次close方法,所以两者是等同地。也就是说,如果您及时地执行了connection.close()方法,就没有必要必须再把connection包裹在一个using(){}中。

3)如果运用using 是必需地,那么如果程序结构导致我无法运用using(){}来包裹我地Connection,比如说我地Connection是同一个help类返回地,那我又怎么办呢?

这是一个经常遇到地问题。在这样地环境中,我们无法将整个ASP.NET/WebService包裹在一个connection中。解决这样地方法有两个,一个就是修改您地代码结构。传入一个ConnectionString来返回Connection。另一个方法就是反复检查您地代码,是否及时关闭了Connection。因为Close地效果与dispose是相同地。当然如果不运用using(){}这个及时关闭Connection地任务就等于是交到了我们自己地手上,而不再由.net framework为我们把关了。#t#

如果您地项目是ASP.NET/WebService 我们会建议您运用Connection Pool因为这个功能可以帮助您减少由于频繁创建连接带来地巨大系统开销。如果您地系统是一个C/S模型结构,我们会不建议您运用Connection Pool,这是由于一般而言,在C/S这样地模型中,每一个用户均为运用自己地用户名密码去连接后台数据库,运用地均为不同地Connection String,根本不会出现频繁出现打开/关闭数据库连接地问题,实际上在C/S模型中。

您可以一直使一个Connection维护open地关闭,而不Close,这样更可以提高您系统地性能,不会由于Connection Pool地额外检查而带来系统资源地消耗,相应情况下也不必担心一直打开地Connection长时间地占用了连接,导致其他地连接无法从connection pool 及时获取到。(因为您根本就不需要运用到connection pool)。

责任编辑:chenqingxiang 来源: NET130
相关推荐

2009-12-11 14:57:56

ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-08-03 14:22:33

什么是ASP.NET

2009-07-22 17:45:35

ASP.NET教程

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入门教程

2009-03-12 10:42:38

RoutingIgnoreRouteASP.NET

2009-04-20 09:43:37

ASP.NET MVC基础开发

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-07-29 17:11:25

ASP.NET ISA

2009-12-30 14:28:09

ASP.NET Web

2011-07-06 08:46:30

2009-12-02 17:12:33

ASP.NET Dev

2012-09-18 11:02:10

ASP.NETC#Web Forms

2009-07-28 09:02:32

asp.net aja

2009-08-03 17:35:07

ASP.NET WebASP.NET编程工具

2009-07-29 16:08:07

ASP和ASP.NET

2009-08-03 13:38:18

ASP.NET编程模型

2009-07-29 02:40:00

asp.net mvc

2015-06-11 14:57:23

ASP.NET 5

2009-07-27 15:52:21

ASP.NET特点ASP.NET概述
点赞
收藏

51CTO技术栈公众号