同一台机器,前台为应用程序,后台为windows service
应用程序往 msmq 中发送消息,windows service 从msmq中读取消息,
windows service 的默认用户为 system应用程序代码:// send message queue to qmminsuranceservice
System.Messaging.Message msgLogin = new System.Messaging.Message("TEST");
if (!MessageQueue.Exists(".\\Private$\\qq1"))
{
    MessageQueue.Create(.\\Private$\\qq1);
    MessageQueue mq = new MessageQueue("(.\\Private$\\qq1");
    AccessControlList list = new AccessControlList();
    Trustee tr = new Trustee("SYSTEM");
    AccessControlEntry entry = new AccessControlEntry(
        tr, GenericAccessRights.All,
            StandardAccessRights.All,
            AccessControlEntryType.Allow);
    list.Add(entry);
    mq.SetPermissions(list);
    mq.Close();
}MessageQueue msgqueLogin = new MessageQueue(m_strMsgQue);
msgqueLogin.Send(msgLogin);
msgqueLogin.Close();创建消息队列,并且赋权限
WINDOWS SERVICE 代码:
if (MessageQueue.Exists("(.\\Private$\\qq1"))
{
MessageQueue mq = new MessageQueue("(.\\Private$\\qq1");
mq.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
mq.MessageReadPropertyFilter.SourceMachine = true;
mq.MessageReadPropertyFilter.Body = true;
System.Messaging.Message[] mss = mq.GetAllMessages();
foreach (System.Messaging.Message ms in mss)
{
    System.Messaging.Message msg = mq.Receive();
    this.EventLog.WriteEntry("msmq - get : " + msg.Body.ToString() + " - " + System.Environment.UserName, EventLogEntryType.Information);
}
}但总是在 windows service 中异常:
Access denied 的异常但如果我事先手工创建消息队列,并赋权限给 system 则运行正常,请问有何良策