[英]Configuring MSMQ private queue permissions for a remote IIS Application Pool Identity
我的設置
ServerA使用本地IIS應用程序池標識在IIS 7上運行Web應用程序。
ServerB正在運行MSMQ,托管一個我們稱之為MyQueue的私有隊列
使用ServerB上的消息隊列管理單元,我已將MyQueue配置為向ServerA的域帳戶(ServerA $)以及ANONYMOUS LOGON用戶授予完全控制權限
我想要發生什么
我希望ServerA上的Web應用程序向ServerB上的MyQueue發送消息
什么是實際發生的事
消息永遠不會出現在ServerB上,我沒有收到任何錯誤消息。 我已經打開負面源日記,可以看到我在死信隊列中遇到“拒絕訪問”錯誤。
如果我向所有人授予完全控制權,則會顯示該消息,但我不想這樣做。
為什么我認為這會起作用
這篇關於IIS應用程序池標識的文章說明了這一點
在域環境中使用網絡服務帳戶有很大的好處。 作為網絡服務運行的工作進程將網絡作為計算機帳戶訪問。 機器加入域時會生成計算機帳戶。 它們看起來像這樣:
域名\\計算機名$,
例如:
mydomain \\ machine1 $關於這一點的好處是可以對文件共享或SQL Server數據庫等網絡資源進行ACL,以允許此計算機帳戶訪問。
應用泳池標識有哪些?
好消息是應用程序池標識也使用計算機帳戶來訪問網絡資源 。 無需更改。
基於該信息,我假設在MyQueue上授予MY_DOMAIN \\ _SERVERA $權限,那么事情應該有效。 但他們不是。
知道我做錯了什么嗎?
這個問題現在已經老化,但我已經設法使用ApplicationPoolIdentity用戶從IIS應用程序查詢MSMQ:
IIS APPPOOL\\{application pool name from step 1}
。 這應該自動完成應用程序池的名稱 最好避免向Everyone授予權限。
我剛剛偶然發現了這個並且在我的情況下找到了解決方案,如果我設置IIS作為網絡服務帳戶運行,遠程隊列將收到我結束的消息。
這已占用了我今天的很多時間,現在我需要解決如果運行IIS作為網絡服務實際上是好的並且不會破壞其他任何東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.