我在本地機器上有一個事務專用隊列。如果隊列未通過認證,則消息進入隊列。如果我將隊列設置爲通過身份驗證,則不會。發送到隊列的應用程序以我的身份運行(並且我完全控制了隊列)。匿名用戶在隊列上也具有發送消息權限。我很困惑,我需要做什麼才能將消息發送到已認證的隊列。發送到已驗證隊列
這裏是我使用的綁定:
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);
理想情況下,我想對大家(包括不認識的用戶)能夠發送郵件,但限制誰可以窺視和接收消息。我不確定這是否可能。
所以,第一個問題:我怎樣才能得到一個消息到認證的隊列?
它看起來像我需要打開傳輸安全上的WindowsDomain
msmqAuthenticationMode
。然而,當我這樣做,我得到以下錯誤:
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是installed in Workgroup mode, not Directory mode。我如何解決這個問題?當我刪除MSMQ然後將其添加回來(具有所有功能)時,它仍然不在目錄模式下。我在Win7上。
對於目錄模式,您需要域控制器和域。如果您只有Windows 7計算機,則可以使用VirtualPC/VMware爲您的計算機創建Windows服務器以用作域控制器。 –