李sir_Blog

博客园 首页 联系 订阅 管理
  705 随笔 :: 58 文章 :: 134 评论 :: 193万 阅读

随笔分类 -  .net技術

上一页 1 2 3 4 5 下一页

摘要:Oracle的版本Oracle10g1。将Oracle.DataAccess.dll加入引用,我使用的版本是2.112.1.22。将以下dll复制到运行目录,例如debug目录下,总之,要和项目最后的exe文件放在一个目录下。 然后就可以了。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Oracle.DataAcce 阅读全文
posted @ 2012-08-02 14:36 李sir 阅读(1340) 评论(0) 推荐(1) 编辑

摘要:平时我们开发使用的是32位的PC机,所以安装的也是Oracle32位的客户端。但是一般服务器都是64位的,安装的也是64位的Oracle客户端,如果要部署使用Oracle.DataAccess连接Oracle的应用程序时,可能会遇到版本上的问题。主 要版本问题有两种,一种是32位版和64位版的问题,如果我们开发出来的应用是32位的,那么就必须使用32位的客户端,如果是64位的应用程序当然对应 64位的客户端。这里需要注意:在64位的环境中使用VS开发Web程序,其运行的Web服务“WebDev.WebServer.exe”是32位的, 所以如果要调试64位的Oracle连接程序,最好是部署到I 阅读全文
posted @ 2012-08-02 14:31 李sir 阅读(12057) 评论(1) 推荐(1) 编辑

摘要:snmpsharpnet是基于C#开发一个开源组件,主要是为了方便使用SNMP协议而生,支持各种SNMP各种版本、各种指令的一个优秀组件。其官方网站是:http://www.snmpsharpnet.com/,里面有很多C#使用例子及相关介绍。有人也应用它来做了一些小应用,如博客:c#开发snmp应用这类开发能解决什么问题呢?简单来讲,可以开发相关设备管理及监控的程序。为了使用SNMP来进行调试及开发,需要在操作系统中安装SNMP服务(默认系统没有安装),安装和普通的安装Window组件一样的步骤,选定简单网络管理协议组件即可,安装后,在服务中启动SNMP服务即可,如下所示:虽然启动了服务,不 阅读全文
posted @ 2012-03-12 10:37 李sir 阅读(5477) 评论(3) 推荐(0) 编辑

摘要:客户在使用过程中发现一个奇怪的问题,我在测试的过程中并没有发现.当ComboBox控制在绑定数据源以后,并指定DisplayMember与ValueMember属性.在对Text第一次赋值后,Text仍然显示Listindex为0的值.但多次赋值能达到预期的效果,我百思不得其解.查阅MSDN也没有得到答案.参考了一些贴子才发现,当ComboBox绑定数据源后,在有数据的情况下.Listindex会默认停在索引0的位置.修改Text的值,并不会影响索引的位置.由于第一次赋值时,ComboBox会读取数据源中DisplayMember的值.致使Text中将显示DisplayMember的值.针对这 阅读全文
posted @ 2011-11-14 14:46 李sir 阅读(3140) 评论(0) 推荐(0) 编辑

摘要:留言板,论坛里的垃圾广告想必是每个人都很头疼的问题,为什么屡禁不止?这主要是大量的发帖机器人的恶劣行为,当然也有人工的。过滤广告的方法太多了,这不是我们重点讨论的问题。这里主要说一说我遇到的情况。我也写过留言板,加入了很完善的广告过滤机制,比如说,留言中不包含中文,或者包含2个以上的http等等就认为是广告,的确也起到了作用,自己测试也一切正常。但是随后,依旧有大量的垃圾广告留言,我百思不得其解,这些广告是怎么发上去的呢?按照广告内容我手动实验输入是不能发上去的。难道直接写数据库?这个在随后也否定了,我检查了数据库,所有写入内容均是正常的。这下我真的不知道哪里出了问题,搜索了半天也没搜索到结果 阅读全文
posted @ 2011-09-22 11:13 李sir 阅读(794) 评论(0) 推荐(0) 编辑

摘要:现在拥有QQ的人已经很多了,而且不少人同时拥有几个账号,遗憾的是QQ只能设置一个号码自动登录,如果想同时登录几个账号那么必须一个一个手动输入,因此,网上也出现了不少QQ自动登录器,这究竟是怎么实现的呢?其实原理非常简单。QQ是支持命令行登录的,也就是说QQ的exe程序支持参数,下面举一个参数登录的例子:e:\qq\qq.exe /START QQUIN:00000000 PWDHASH:4QrcORm6Wau+VuBX9g+IPg== /STAT:41比如有上面这个参数,前面的e:\qq\qq.exe是QQ的程序路径,/START QQUIN:是保留字段,后面紧跟的就是需要登录的QQ号码,PW 阅读全文
posted @ 2011-09-22 11:03 李sir 阅读(6572) 评论(6) 推荐(0) 编辑

摘要:真是越来越喜欢C#的强大和易用了,上次给大家介绍了一个C#打造QQ自动登录的小程序,这次再给大家介绍一个更好玩的小程序:气泡屏幕保护!首先说一下制作要点:1 窗口要全屏置顶 2 模拟气泡的滚动和粘滞效果 3 支持快捷键ESC退出大致就是这3个要点了,其他还有一些细节我们在程序中根据需要再看,OK,开工!首先是全屏置顶,因为是屏幕保护嘛,这个简单,在窗体的属性设置里把FormBorderStyle设置为none表示无边框,把ShowInTaskbar设置为false表示不在任务栏出现,最后一个把WindowState设置为Maximized表示最大化即可,当然可以设置TopMost为true让窗 阅读全文
posted @ 2011-09-22 10:56 李sir 阅读(2395) 评论(1) 推荐(0) 编辑

摘要:1、弹出式广告框也是IE浏览窗口,一般来说,它是一个无菜单、无工具栏窗口。所以可以在桌面上打开一个窗口时,首先判断该窗口类型是否是“IEFrame”,接着判断IEFrame的子窗口类型“WorkerW”的属性是否是不可见(这是一般弹出式广告窗口的特征),这样就可以向该窗口发出关闭的消息,以上步骤一般能自动关闭大部分弹出广告框。 2、通过WINDOWS编程中的钩子(HOOK)函数解决截获在桌面上打开窗口的消息。钩子函数的基本原理就是对WINDOWS系统的某些动作注册,当发生这些事件时首先调用预先设置的回调函数,回调函数处理后,再由原来的函数处理。这里回调函数的作用正是实现1中叙述的功能。因为.. 阅读全文
posted @ 2011-09-22 10:31 李sir 阅读(1325) 评论(1) 推荐(0) 编辑

摘要:bool restart = true;while (restart){Start(out restart);}(1):在主进程中不停的调用start.void Start(out bool restart){ bool connected = false; restart = false; string[] userInfo = null; try { //打开LoginInfoForm窗体,返回用户名密码。 userInfo = GetLoginInfo();// Splasher.GetLoginInfo(); if (userInfo == null) { loginOK = fals 阅读全文
posted @ 2011-07-14 16:43 李sir 阅读(1221) 评论(0) 推荐(0) 编辑

摘要:1. 首先使用Configuration Console, 在blocks里面 Add Caching Setteings. 设置一些参数,比如Expiration Polling Frequency(seconds), 这个是指每隔指定的时间,cache block会检查那些过期的cache item,并且把他们删除掉。2. 配置好以后可以保存为一个config文件,然后把config内容拷贝到你的project中的配置文件中。 <configSections> <section name="cachingConfiguration" type=&quo 阅读全文
posted @ 2011-07-12 10:19 李sir 阅读(2053) 评论(1) 推荐(0) 编辑

摘要:(1):引用log4net(2):using log4net;(3):构造函数中static CoreLogging() { log4net.Config.XmlConfigurator.Configure(); }(4):private const string UnknownDeviceCategory = "UnknownDevice"; private const string AlarmCategory = "Alarm"; private const string GeneralCategory = "Trace"; pr 阅读全文
posted @ 2011-07-12 09:48 李sir 阅读(522) 评论(0) 推荐(0) 编辑

摘要:AutoResetEvent 允许线程通过发信号互相通信。通常,此通信涉及线程需要独占访问的资源。线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号。如果 AutoResetEvent 处于非终止状态,则该线程阻塞,并等待当前控制资源的线程通过调用 Set 发出资源可用的信号。调用 Set 向 AutoResetEvent 发信号以释放等待线程。AutoResetEvent 将保持终止状态,直到一个正在等待的线程被释放,然后自动返回非终止状态。如果没有任何线程在等待,则状态将无限期地保持为终止状态。可以通过将一个布尔值传递给构造函数来控制 AutoResetEvent 阅读全文
posted @ 2011-07-11 10:39 李sir 阅读(30623) 评论(11) 推荐(6) 编辑

摘要:http://www.cnblogs.com/jillzhang/archive/2008/07/26/1252171.html必要条件(1)wcf服务已经运行。(2)behaviors> <serviceBehaviors> <behavior name="CoreServiceBehavior"> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors>说明支持 阅读全文
posted @ 2011-07-08 10:40 李sir 阅读(320) 评论(0) 推荐(1) 编辑

摘要:ConcurrentDictionary 是.NET 4.0中在并行和并发编程方面显著增强的基石。但是在对其进行深入研究之前,让我们来回顾一下在.NET之前版本中存在的问题。.NET中哈希表的第一个版本是System.Collections.Hashtable。尽管它并非是线程安全的,但在理论上你可以通过简单地调用Hashtable.Synchronized来得到线程安全的封装器。不幸的是,由于这个封装器所使用的方式,它并不是真正线程安全的,比方说,你想要检查一个键值是否存在于集合中。如果不存在,那么你就想要执行一个不会重复的操作,在那里会将结果保存。即使ContainsKey和set_Ite 阅读全文
posted @ 2011-06-29 13:47 李sir 阅读(998) 评论(0) 推荐(1) 编辑

摘要:QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国。服务器程序,其可承受的同时连接数目是有理论峰值的,通过C++中对TSocket的定义类型:word,我们可以判定这个连接理论峰值是65535,也就是说,你的单个服务器程序,最多可以承受6万多的用户同时连接。但是,在实际应用中,能达到一万人的同时连接并能保证正常 阅读全文
posted @ 2011-06-28 15:57 李sir 阅读(1725) 评论(0) 推荐(1) 编辑

摘要:那现在来说,稳定的中间件应该是什么样子呢? 对于客户端请求,如果发现服务停止,可以实现服务无缝转移---这叫不丢失任何服务. 对于多个客户端请求,可以讲请求轮巡到不同的服务器上---这样叫负荷平摊,如果再做到可以根据客户端数量方面地增减服务器数量,那就能很通过简单增加服务器,实现系统效率的提升。 最牛的是,如果你再加上分布式程序设计。一个函数,根据服务器负荷平摊的特点,可以让多个服务器,同时为一个函数工作。思考: 第一:客户端请求,实现轮巡。 知道了请求,需要轮巡。就要先知道有那些服务器---》 设计服务器注册注销机制。 还要知道请求当前,每台服务器上有那些负荷---》客户端请求计算机制。 然 阅读全文
posted @ 2011-06-28 15:47 李sir 阅读(819) 评论(0) 推荐(0) 编辑

摘要:动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。大型动态应用系统又可分为几个子系统:l Web前端系统l 负载均衡系统l 数据库集群系统l 缓存系统l 分布式存储系统l 分布式服务器管理系统l 代码分发系统Web前端系统结构图:为了达到不同应用 阅读全文
posted @ 2011-06-28 15:38 李sir 阅读(847) 评论(0) 推荐(0) 编辑

摘要:千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性?首先讨论一下大型网站需要注意和考虑的问题。数据库海量数据处理:负载量不大的情况下select、delete和update是响应很迅速的,最多加几个索引就可以搞定,但千万级的注册用户和一个设计不好的多对多关系将带来非常严重的性能问题。另外在高UPDATE的情况下,更新一个聚焦索引的时间基本上是不可忍受的。索引和更新是一对天生的冤家。高并发死锁:平时我们感觉不到,但数据库死锁在高并发的情况下的出现的概率是非常高的。文件存储的问题:大型网站有海量图片数据、视频数据、文件数据等等,他们如何存储 阅读全文
posted @ 2011-06-28 15:31 李sir 阅读(657) 评论(0) 推荐(0) 编辑

摘要:架构演变第一步:物理分离webserver和数据库最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易出问题,于是进入了第一步演变阶段:将应用和数据库从物理上分离,变成了两台机器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前 阅读全文
posted @ 2011-06-28 15:26 李sir 阅读(619) 评论(0) 推荐(0) 编辑

摘要:前言:我们知道以往资料要放到 M 台服务器上,最简单的方法就是取余数 (hash_value % M) 然后放到对应的服务器上,那就是当添加或移除服务器时,缓存重组的代价相当巨大。 添加服务器后,余数就会产生巨变,这样就无法获取与保存时相同的服务器, 从而影响缓存的命中率。下面这篇文章写的非常好,结合memcached的 特点利用Consistent hasning 算法,可以打造一个非常完备的分布式缓存服务器。我是Mixi的长野。本次不再介绍memcached的内部结构, 开始介绍memcached的分布式。memcached的分布式 memcached的分布式是什么意思? Cache::M 阅读全文
posted @ 2011-06-28 14:52 李sir 阅读(693) 评论(1) 推荐(0) 编辑

上一页 1 2 3 4 5 下一页
点击右上角即可分享
微信分享提示