wcf系列5天速成——第二天 binding的使用(2)

http://www.cnblogs.com/huangxincheng/archive/2011/11/06/2237980.html

承接上一章,今天来讲MSMQ在实战项目中的应用。众所周知,放了防止订单丢失,我们都是采用Order过一下MSMQ。

    MSMQ的优点个人认为是:先天的异步消息发送和天生的自动负载均衡。

 

好了,看看MSMQ在实战中的应用。

 

第一步:  准备工作,安装MSMQ服务器,然后勾上下图选项,安装即可。

 

第二步:新建一个类库。建立两个文件IOrder.cs,Order.cs。截图如下。

 备注:这里加上try和catch 是为了捕获:文件 xxx 正由另一进程使用,因此该进程无法访问此文件。不加上这个会报错,程序无法继续。

我尝试后,还可以有两个解决方法:

1:用  static object a = new object(); lock(a){File.AppendAllText("文件名","content");}

2:用 互斥锁(Mutex)互斥锁是一个互斥的同步对象,意味着同一时间有且仅有一个线程可以获取它。互斥锁可适用于一个共享资源每次只能被一个线程访问的情况。  static Mutex mutex = new Mutex(); public void dowork(){ mutex.waitone(); dosomthing();mutex.ReleaseMute;}


第三步:新建Host的Console程序,建立App.config文件,截图如下。

 

第四步:在console程序中:①:创建队列。②: 开启服务。

 

 

最后一步:新建一个Console程序作为客户端来对MSMQ进行测试,这次我们通过“信道”的方式生成实例。

              ①: 让Host服务Off Line,我们插入100条Order,看msmq有什么反应。

             

 

   对的,消息数量也就是我Client插入的100条订单信息。

      ②: 这次,我重启一下Host,让Service端 On Line。看看MSMQ又有什么反应。

     

是的,当MSMQ发现我的WCf已经开启,消息也就全部进去我的”1.txt“文件。

 

最后呈现一下项目图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值