摘要:
前几天同事问我一个问题,一种CS架构的程序,直接把SQL Server作为服务端,每个客户端直接连接数据库操作,如果客户端打开的数量过多时SQL Server的连接数将会特别高,数据库端形成性能瓶颈,这种情况下怎么办?想了想,造成这种情况的原因是ADO.NET的内部机制造成的。ADO.NET中为了提高性能,所以使用了连接池,这样每个请求就不必都创建一个连接,然后认证,然后执行SQL,而是从连接池中直接取出连接执行SQL,执行完成后也并不是真正关闭连接,而是将该连接重新放回连接池中。如果有100个客户端,每个客户端在使用一段时间后连接池中保存了10个连接,那么在这种情况下,即使不在客户端做任何操作,SQL Server上都有1000个连接,这样不出性能问题才怪。
既然是连接池的问题,那么我就针对该问题想到了2个解决办法:
阅读全文
摘要:
我在上一篇文章中已经讲解了一般网站的登录原来和C#的登录实现,很多人问到对于使用了验证码的网站该怎么办,这里我就讲讲验证码的原理和对应的登录方法。
验证码的由来
几年前,大部分网站、论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验。但是后来各种灌水机器人、投票机器人、恶意注册机器人层出不穷,大大增加了网站的负担同时也给网站数据库带来了大量的垃圾数据。为了防止各种机器人程序的破坏,于是程序员想出了只有人眼能够识别的,程序不容易识别的验证码!
验证码是一个图片,将字母、数字甚至汉字作为图片的内容,这样一张图片中的内容用人眼很容易识别,而程序将无法识别。在进行数据库操作之前(比如登录验证、投票、发帖、回复、注册等等)程序首先验证客户端提交的验证码是否与图片中的内容相同,如果相同则进行数据库操作,不同则提示验证码错误,不进行数据库操作。这样各种机器人程序就被拒之门外了!
但是随着计算机科学的发展,模式识别等技术越来越成熟,于是编写机器人程序的家伙可以通过程序将直接写在图片中的内容识 阅读全文
摘要:
我们在写灌水机器人、抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录。那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的。
HTTP协议是一个无连接的协议,也就是说这次对话的内容和状态与上次的无关,为了实现和用户的持久交互,网站与浏览器之前在刚建立会话时将在服务器内存中建立一个Session,该Session标识了该用户(浏览器),每一个Session都有一个唯一的ID,第一次建立会话时服务器将生成的这个ID传给浏览器,浏览器在接下来的浏览中每一个发向服务器的请求中都将包含该SessionID,从而标识了自己的身份。
阅读全文
摘要:
在以前的一篇文章中我讲到了Sybase ASE数据库的安装,接下来本篇就讲一下Sybase数据库与SQLServer2005数据库的同步,准确的说是使用SQLServer2005读取和写入Sybase数据库表。
为什么要这样做拉?因为在项目中有时需要做其他系统的数据接口,而接口中的数据是存放在Sybase数据库中,这个时候就可以使用SQLServer2005中的链接服务器来连接Sybase数据库,在前面我也写过一篇文章讲SQLServer2005与Oracle数据库的同步,大同小异,大家可以参考。闲话休说,言归正传,下面讲一下配置步骤:
阅读全文
摘要:
What Great .NET Developers Ought To Know (More .NET Interview Questions) A while back, I posted a list of ASP.NET Interview Questions. Conventional wisdom was split, with about half the folks saying I... 阅读全文
摘要:
最近在调页面,所以要写CSS并且要考虑兼容性问题,所以转载这篇文章:
关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助.
一、CSS HACK
以下两种方法几乎能解决现今所有HACK. 阅读全文
摘要:
前一篇文章中已经学习了AMF数据类型,那么接下来就要将一个完整的AMF文件的封装格式了。
AMF文件总体来说分为4部分:前言(Preamble)、AMF头、AMF主体和主体的响应。
阅读全文
摘要:
AMF是Action Message Format协议的简称,AMF协议是Adobe公司自己的协议,主要用于数据交互和远程过程调用,在功能上相当于WebService,但是AMF与WebService中的XML不同的是AMF是二进制数据,而XML是文本数据,AMF的传输效率比XML高。AMF使用HTTP方式传输,目前主要是用于ActionScript中,即实现Flex和Server之间的通信。 阅读全文
摘要:
在一个项目中我使用到了软件工厂的工具帮助生成了对数据库的CRUD的方法,在Logic中需要对数据层进行封装,以提供对实体操作的接口,封装后的代码如: public bool AddNews(News news) { try { newsRep.Add(news);//执行数据库操作 return true; } catch (E... 阅读全文
摘要:
由于我和同事要合作做一个小程序,所以需要一个源代码管理的工具。在工作的时候我们由于是VS进行.net开发所以一般是使用TFS进行项目管理。但是我们在不同的项目组,工作地点不一样,而且现有的TFS服务器都是在内网的,所以无法使用TFS,这种情况下只有找公网上的免费源代码管理服务了! 若说到在互联网上的源代码管理,我第一想到的就是CVS,现在已经是SVN了。于是便打算使用SVN进行源代码管理。下面就具... 阅读全文