簡體   English   中英

通過C#更新專用隊列上的MSMQ權限

[英]Updating MSMQ permissions on a private queue via C#

我們在生產系統中使用了一些私有MSMQ隊列。 自實施以來,我們不得不使用隊列更新某些內容,然后重新創建它們以使用更新的代碼。 我們有200多台需要這些更新的計算機,因此我正在研究一個程序,該程序將通過SMS推送以執行此更新。

我注意到的是,唯一可以運行我的程序進行更新的人是最初在該特定計算機上設置專用隊列的人。 由於計算機數量眾多,因此有多個管理員來設置這些隊列。

由於並非所有員工仍在這里工作,因此這使我[我的程序]遇到了問題。 該權限不允許程序更新我需要的所有內容。 我在Google上搜索並找到了此鏈接http://social.msdn.microsoft.com/Forums/hu-HU/msmq/thread/36a3d910-d533-4af3-86dc-498d00c68fef ,該鏈接顯示了如何通過修改文件來更新權限。為每個隊列創建。 大! 當我手動導航到該路徑並進行更新時,它可以工作。 現在,我想通過SMS推送以編程方式進行操作。

嘗試從我的程序運行此文件時,出現錯誤,提示目錄不存在“ C:\\ Windows \\ System32 \\ msmq \\ storage \\ lqs”。 ?? 當我在“開始”->“運行”中輸入該路徑時,它會彈出文件夾。 好吧,破壞我代碼的if(Directory.Exists(path))部分肯定會返回false。 如果刪除System32以外的所有文件夾,則Directory.Exsts可以正常工作。

為什么我的程序無法確定該msmq文件夾是否存在? 我嘗試過“以管理員身份運行”,但仍返回false。 我需要做什么才能使該支票生效?

謝謝

編輯:這真的很奇怪,我有一個我編寫的FindAndReplace API,它將使用路徑(文件或目錄),查找文本,替換文本等。當我從“查找和替換” GUI包裝器運行該程序時,它工作正常。 但是,當我從更新程序中調用此API時,它說該目錄不存在。 這真是令人困惑。 (我可能應該刪除MSMQ標簽,因為它與我的問題無關...)

項目+屬性,生成選項卡。 將“目標平台”設置從x86更改為AnyCPU。 這使您可以在64模式下運行程序,因此c:\\ windows \\ system32目錄搜索不會重定向到c:\\ windows \\ syswow64。

暫無
暫無

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

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