簡體   English   中英

如何訪問由 NETWORK SERVICE 帳戶創建的私有 MSMQ 隊列?

[英]How to access a private MSMQ queue created by NETWORK SERVICE account?

我的應用程序由兩部分組成:一個 web 服務,它將隊列發送到一個私有 MSMQ 隊列,以及一個 Windows 服務,它接收隊列並將它們插入數據庫。 在我的開發機器中,一切都很好,但是當我將它們部署到服務器時,出現了權限問題:

  • 網絡服務在 IIS 內部運行,使用 NETWORK SERVICE 帳戶創建隊列。
  • 服務本身,以管理員身份運行,然后無法訪問隊列。

我嘗試為管理員帳戶添加權限,但失敗並出現錯誤“訪問被拒絕”。 我什至無法刪除這些隊列。

我怎樣才能解決這個問題? 非常感謝

當 web 服務創建隊列時,它應該確保它具有適當的訪問權限。 如果您使用的是 .NET,您可以在創建隊列后使用MessageQueue.SetPermissions方法修改隊列的權限。

這個 C# 代碼將創建一個新的消息隊列並讓本地管理員組完全控制它:

var messageQueue = MessageQueue.Create(path, true);
messageQueue.SetPermissions(
  "Administrators",
  MessageQueueAccessRights.FullControl
);

添加網絡服務和管理員權限。 在創建隊列時。

如果您想刪除隊列,請按照此步驟操作...

https://stackoverflow.com/a/11430249/672891

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM