您的位置:首页 > 其它

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

2013-07-16 13:27 211 查看
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“文件。

 

最后呈现一下项目图:



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: