我的本地机器上有一个事务专用队列。如果队列未通过身份验证,则消息进入队列。如果我将队列设置为进行身份验证,则不会。发送到队列的应用程序正在以我自己的身份运行(并且我可以完全控制队列)。匿名用户还具有队列上的发送消息权限。我很困惑我需要做什么才能将消息发送到经过身份验证的队列。
这是我正在使用的绑定:
NetMsmqBinding msmq = new NetMsmqBinding(NetMsmqSecurityMode.None);
msmq.MaxReceivedMessageSize = int.MaxValue;
msmq.CloseTimeout = TimeSpan.FromMinutes(3);
msmq.SendTimeout = TimeSpan.FromMinutes(3);
msmq.ReceiveTimeout = TimeSpan.FromMinutes(3);
msmq.ReaderQuotas.MaxDepth = int.MaxValue;
msmq.ReaderQuotas.MaxStringContentLength = int.MaxValue;
msmq.ReaderQuotas.MaxArrayLength = int.MaxValue;
msmq.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
msmq.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
msmq.ExactlyOnce = true;
msmq.Durable = true;
msmq.TimeToLive = TimeSpan.FromHours(1);
理想情况下,我希望每个人(包括无法识别的用户)都能够发送消息,但限制谁可以偷看和接收消息。我不确定这是否可能。
那么,第一个问题:如何将消息放入经过身份验证的队列?
看起来我需要使用 of 打开传输安全msmqAuthenticationMode
性WindowsDomain
。但是,当我这样做时,我收到以下错误:
Binding validation failed because the binding's MsmqAuthenticationMode property is set to WindowsDomain but MSMQ is installed with Active Directory integration disabled. The channel factory or service host cannot be opened.
看起来我的 MSMQ 是在 Workgroup mode 下安装的,而不是 Directory mode。我该如何解决?当我删除 MSMQ 然后将其添加回来(具有所有功能)时,它仍然不在目录模式下。我在win7。