其他分享
首页 > 其他分享> > CodeGo.net>使用MSMQ和WCF

CodeGo.net>使用MSMQ和WCF

作者:互联网

我早些时候发布了这个问题
post ?

开始阅读wcf和msmq.

我的第一个问题是-假设我的队列中有100条消息,我如何告诉我的服务开始异步处理每条消息,以便它同时处理多条消息.这甚至可能还是总是同步操作?

更新:
假设我的系统是这样的,我也有远程位置/服务器,文件也在那里上传.我所有的处理都在中央位置进行.将利用msmq和wcf将来自远程位置的所有文件复制到中央位置.消息可以由监视DB的应用程序提供,一旦它确定应该复制文件,它就会提供一条消息,WCF服务接收该消息并将文件从远程复制到中央位置.

由于这是一个专用网络,因此可以通过unc路径访问该文件.我知道我的客户会倾向于在某个时候这样做,并尝试根据给定的文件量和同时复制文件的要求确定这是否可行.

我建议使用BITS,但是由于IT部门的政治原因,客户对BITS感到不满意.

解决方法:

WCF服务器端代码将由config中的服务限制设置控制.默认情况下,对于每个请求(队列中的消息),将创建服务类的实例来处理消息.

服务器端WCF ServiceHost将为您处理此管理-无需您进行任何特殊处理.

可以通过serviceThrottling行为来控制服务限制.看看这个出色的blog post by Dan Rigsby,了解如何在配置中设置节流的详细信息.

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name="throttled">
                <serviceThrottling
                    maxConcurrentCalls="16"
                    maxConcurrentInstances="2147483647"
                    maxConcurrentSessions="10"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

最重要的设置将是maxConcurrentCalls-这定义了WCF服务将处理多少个并发调用.

您还应该查看此blog post here,其中显示了如何使用MSMQ WCF以及与直接MSMQ和HTTP上WCF的对比.出色的介绍,出色的视频.

标签:msmq,wcf,c
来源: https://codeday.me/bug/20191106/2000554.html