天天看点

使用windows服务和MSMQ和进行日志管理(解决高并发问题)

首先,建立一个windows服务项目

<a href="http://images.cnblogs.com/cnblogs_com/lori/201202/201202101327368536.png"></a>

然后进行设计视图

在工作区空白处右属,添加一个安装项目

<a href="http://images.cnblogs.com/cnblogs_com/lori/201202/201202101327412935.png"></a>

然后就可以写我们的代码了,我们的服务需要实时监视MSMQ的队列中有没有记录,如果有,就向数据库中插入

核心代码如下

为了使服务实时对MSMQ进行监控,需要我们在服务中使用一个定时事件,代码如下:

当然在程序初始化时,需要为一个System.Timers.Timer类型进行相应的初始化工作    

 这个WINDOWS服务我们已经添加完成,现在需要做的就是MSMQ部分了,事实上windows服务这块主要是从MSMQ中得到消息,而在MSMQ这块主要是向MSMQ去写入消息,微软的MSMQ完全支持复杂类型,也就是说你可以将一个类对象写到MSMQ中

当需要调用它时,可以这样:

<a href="http://images.cnblogs.com/cnblogs_com/lori/201202/201202101327427527.png"></a>

安装与卸载windows服务的方法:

     installutil工具在目录:系统盘:\WINDOWS\Microsoft.NET\Framework\v4.0.30319下,运行cmd,输入

  C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\installutil xxxx.exe 回车,即可完成windows服务的安装。

  卸载则为输入 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\installutil /u xxxx.exe 回车。

本例经过自己实验,已经成功,当若干客户端同时进行某种操作时,可以同时写入数据库中,这就是我要说的,进行window服务和MSMQ技术实现高并发的解决方案