![](https://i-blog.csdnimg.cn/blog_migrate/f6ab7af7969c7038550d4cc3a6865cdb.png)
一.概述
在
Enterprise Library Step By Step
系列里我们说过,
日志和检测应用程序块
主要由2部分组成:Client和Distributor。Client负责创建消息,这些消息将由Distributor写入目标位置。
Client
根据分发策略(Distribution Strategies)发送消息到Distributor,在Application Block中提供了2个分发策略:In Process和MSMQ,默认的是In Process策略。同步日志是在Client进程中完成的,而异步日志是利用了MSMQ来实现的,Client需要创建日志消息并发送到MSMQ消息队列。另外一个进程则等待到达的消息,并写入合适的日志接收池
应用程序块中包含一个Windows Service: MSMQ Distributor Service。当安装该服务后,该服务会在指定的时间间隔检测消息队列。
我们看一下日志和监测应用程序块处理的流程图:
![](https://i-blog.csdnimg.cn/blog_migrate/aba260e6781331c0ac769d3dd0886d15.png)
二.安装并配置MSMQ Distributor Service
1
.打开Visual Studio命令行工具,切换到目录(默认的企业库安装路径)C:\Program Files\Microsoft Enterprise Library\bin下,运行如下命令:
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
注意:必须要以这种方式安装服务,否则安装不成功。
2
.安装过程中会弹出一个设置服务登录对话框,要求输入用户名和密码。此时用户名和密码的形式必须以域用户的形式输入,用<.\username>的形式也是可以的,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/a901d45accc2d54307cca48f96648bdb.png)
3
.启动服务。我们在服务管理器里面找到Enterprise Library Logging Distributor Service这项服务,手工启动它。
![](https://i-blog.csdnimg.cn/blog_migrate/7aa4d71e0f4e9dc10e1652aba96699d7.png)
4
.用文本编辑器打开MsmqDistributor.exe.config文件,删除如下这节:
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
5
.用Configuration Console, 打开 MsmqDistributor.exe.config 文件
将 MSMQ Distributor Service 添加到 Distributor Settings,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/de26617348dad216cc2c7a3e08ab1ae4.png)
6
.设定 MsmqPath 属性匹配 Client 的队列名,我们可以修改MsmqPath的值,但是该值必须与我们应用程序中的Client配置的一致。
![](https://i-blog.csdnimg.cn/blog_migrate/6a3ad6bf64989e12848a495e4d1073f5.png)
三.使用MSMQ创建异步日志
1
.我们前面说过,Client Settings 决定分发策略,一个Client的所有消息使用同一个策略。所以我们不能同时创建两个策略,必须先删除In Process后,才能创建MSMQ:
![](https://i-blog.csdnimg.cn/blog_migrate/68d3f834a5ede2d928e29c0eb4b7556a.png)
2
.创建MSMQ分发策略之后,注意队列名必须和我们刚才在第二节里面所说的一致:
3
.其他的操作就跟我在Enterprise Library Step By Step系列里面写的一样了。
请大家参考:
本文转自lihuijun51CTO博客,原文链接:
http://blog.51cto.com/terrylee/67616
,如需转载请自行联系原作者