1

我有一台带有事件服务的服务器,它位于我们的总部H/O 服务器

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

两台机器之间的连接是通过 VPN 进行的,并且两台服务器都在不同的域上。

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

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

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

如果是这种情况,我会遇到哪些安全问题以及如何解决这些问题。

提前致谢

4

1 回答 1

0

如果要跨域向队列发送消息,则需要将远程队列的发送权限授予名为 ANONYMOUS LOGON 的本地用户。这是为了在远程机器上使用 Windows 2008。

更新

任何参与消息交换的机器都需要安装 MSMQ。在您的服务绑定中,您确定服务地址的本地队列。您创建一个单向操作合同来充当您的消息处理程序。当消息发送到此本地队列时,将调用此方法。

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

您将遇到的问题是您正在跨域,因此当您的呼叫到达远程队列时,发件人身份在该域上将没有任何意义,因此您必须允许任何人将消息发送到队列中。您可以通过授予Everyone本地帐户对队列的发送权限来执行此操作(您可能还需要Get PropertiesGet Permissions)。

于 2012-05-31T15:35:15.003 回答