0
서비스 사용자가 만든 개인 메시지 큐를 삭제할 수 있습니까? 제거하는 동안 애플리케이션에서 작성한 메시지 대기열을 정리하고 싶습니다. 보안을 위해 이러한 대기열에 대한 액세스가 현재 사용자 (ServiceUser)로 제한되었습니다. 제거하는 동안 관리자 권한이 있지만 큐를 삭제하거나 큐에서 privs를 수정하려고하면 MessageQueueException 액세스가 거부됩니다.제거 중에 MSMQ 큐 삭제
public void DeleteAppQueues()
{
List<string> trash = new List<string>();
var machineQueues = MessageQueue.GetPrivateQueuesByMachine(".");
foreach (var q in machineQueues)
{
if (IsAppQueue(q.QueueName))
{
trash.Add(".\\" + q.QueueName);
}
q.Dispose();
}
foreach (var queueName in trash)
{
try
{
using (MessageQueue delQueue = new MessageQueue(queueName))
{
delQueue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
}
MessageQueue.Delete(queueName);
}
catch (MessageQueueException ex)
{
// ex.Message is "Access to Message Queuing system is denied."
}
}
}
삭제 호출과 SetPermissions 호출은 모두 throw됩니다. –