在隔离环境中通过MSMQ使用另一个WCF服务调用WCF服务

在隔离环境中通过MSMQ使用另一个WCF服务调用WCF服务,wcf,msmq,Wcf,Msmq,我的总部有一台服务器,带有活动服务,H/O服务器 然后,我有一个托管在外部服务提供商处的服务器Ext服务器 两台机器之间的连接是通过VPN实现的,两台服务器位于不同的域上 我需要Ext服务器上的应用程序调用H/O服务器上的事件服务。事件服务是一个WCF服务 我正在考虑使用WCF over MSMQ来保证Ext-Server应用程序引发的任何事件都被传递到WCF事件服务 我的问题是我该如何做:- 我将我的WCF服务托管在H/O服务器上的IIS中,然后我是否在Ext服务器上设置MSMQ,并让Ext服

我的总部有一台服务器,带有活动服务,H/O服务器

然后,我有一个托管在外部服务提供商处的服务器Ext服务器

两台机器之间的连接是通过VPN实现的,两台服务器位于不同的域上

我需要Ext服务器上的应用程序调用H/O服务器上的事件服务。事件服务是一个WCF服务

我正在考虑使用WCF over MSMQ来保证Ext-Server应用程序引发的任何事件都被传递到WCF事件服务

我的问题是我该如何做:- 我将我的WCF服务托管在H/O服务器上的IIS中,然后我是否在Ext服务器上设置MSMQ,并让Ext服务器上的应用程序按照正常方式引用WCF服务,只是将绑定更改为指向本地队列

如果是这样的话,我会遇到什么安全问题,我将如何解决这些问题


提前感谢

如果要跨域向队列发送消息,则需要将远程队列上的发送权限授予名为匿名登录的本地用户。这是用于在远程计算机上使用Windows 2008

更新

参与消息交换的任何计算机都需要安装MSMQ。在服务绑定中,标识服务地址的本地队列。您可以创建一个单向操作契约作为消息处理程序。将消息发送到此本地队列时,将调用此方法

从发送机器创建一个客户端绑定,该绑定引用同一队列(这次是远程地址)。然后,您可以在客户端代码中调用该操作,这将导致MSMQ将消息传输到远程队列


您将遇到的问题是,您正在穿越域,因此,当您的呼叫到达远程队列时,发件人身份在该域上将没有意义,因此您必须允许任何人向队列发送消息。您可以通过授予Everyone本地帐户对队列的发送权限(您可能还需要获取属性和获取权限)来实现这一点

很遗憾,我的远程服务器在Windows 2003上。对不起,我忘了指定。所以远程服务器是Windows2003,本地服务器是Windows2008。这是否意味着我只需要在远程服务器(Windows 2003)上安装MSMQ,然后以某种方式将本地服务器绑定到远程服务器MSMQ队列,获得适当的访问权限,然后我就可以通过位于远程服务器上的MSMQ队列从远程服务器调用此WCF服务?