मैंने निजी कतार पर संदेश भेजने के लिए अनुमतियों को अचयनित किया है, फिर भी MessageQueue.CanWrite
false
कभी नहीं लौटाता है। मैं टॉगल संदेश अनुमतियां प्राप्त कर सकता हूं और CanRead
संपत्ति अपेक्षित के रूप में प्रतिक्रिया दे सकता है। CanWrite
संपत्ति अलग-अलग व्यवहार क्यों करेगी?MessageQueue.CanWrite हमेशा सत्य लौटाता है
मैंने इस मुद्दे का परीक्षण दो अलग-अलग एडी उपयोगकर्ताओं के साथ किया है और परिणाम समान हैं।
क्या यह सत्यापित करने के लिए कोई अलग दृष्टिकोण है कि कोई विशिष्ट उपयोगकर्ता खाता एक विशिष्ट रिमोट निजी कतार में एक मेसेज भेज सकता है या नहीं?
public class SendBehavior : IMsmqRuleBehavior
{
public bool Validate(string queuePath)
{
using (var queue = new MessageQueue(queuePath, QueueAccessMode.Send))
{
return queue.CanWrite;
}
}
}
public class ReceiveBehavior : IMsmqRuleBehavior
{
public bool Validate(string queuePath)
{
using (var queue = new MessageQueue(queuePath, QueueAccessMode.Receive))
{
return queue.CanRead;
}
}
}
ऐसा लगता है कि यदि 'QueueAccessMode.Send' से अनुरोध किया गया है कि' CanWrite' संभवतः 'सत्य' होगा।* (साइड प्रश्न: क्या आपने इस कतार के लिए 'प्रमाणीकृत' चेक बॉक्स टॉगल किया था) * – user7116
मैंने सोचा था कि डिफ़ॉल्ट QueueAccessMode SendAndReceive है और CanRead परीक्षण प्राप्त करने के लिए QueueAccessMode सेट के साथ अपेक्षित व्यवहार करता है। – chad
क्या आप 'QueueAccessMode.Receive' सेट करते समय' CanWrite' 'false' बन जाते हैं? क्योंकि आईएलएसपी में 'MessageQueue' वर्ग की मेरी समीक्षा से ऐसा लगता है कि केवल आपके द्वारा दिए गए आपके मोड उन संपत्ति मानों को प्रतिबिंबित करते हैं। – user7116