0
是否可以刪除由服務用戶創建的私人消息隊列?在卸載過程中,我們希望清理由我們的應用程序創建的任何消息隊列。出於安全目的,對這些隊列的訪問權限僅限於當前用戶(ServiceUser)。在卸載期間,我們擁有管理員權限,但當我們嘗試刪除隊列或修改隊列上的priv時,仍然會拒絕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調用都拋出。 – 2009-09-15 03:17:42