簡體   English   中英

未設置COM +應用程序標識

[英]COM+ Application Identity is not set

我看到一個奇怪的問題(很可能我的代碼很不完整),有人可以看一下並幫助我解釋為什么以下代碼可以正常運行但沒有發生變化。 當我去看看“身份”選項卡時,沒有任何改變。 操作系統是Windows 2008 Server R2

COMAdminCatalog cc = new COMAdminCatalog);
COMAdminCatalogCollection ccc = (COMAdminCatalogCollection)cc.GetCollection("Applications");
ccc.Populate();
foreach(COMAdminCatalogObject cap in ccc){
  if(cap.Name.ToString() == config.Application){
     //cap.set_value("Authentication",COMAdminAuthenticationLevelOptions.COMAdminAuthenticationConnect)//I have changed all options here but no effect
 cap.set_Value("Identity", config.user);
 cap.set_Value("Password", config.password);
 ccc.SaveChanges();//breakpoint here
  }
}

原來ccc.SaveChanges()返回錯誤代碼= 1,有人知道這是什么意思嗎? MS文檔說返回的錯誤代碼是十六進制值,例如0x800401等(剛剛組成)

我自己做了(每天學習新東西!),這是我的結果,希望我們能解決您的問題:

我創建了一個新的COM +服務器應用程序並復制了您的代碼(進行了微小的更改,因此它找到了我的應用程序,因為我不知道您的示例中的config是什么:)

從調試到ccc.SaveChanges() -如果出現問題,此行應引發異常。 就我而言,我得到了UnauthorizedAccessException通過以管理員身份在Visual Studio中運行代碼來解決此問題

完成該操作后, ccc.SaveChanges()起作用-我轉到“身份”選項卡,它正確更新了用戶名和密碼(如果您在代碼中輸入了錯誤的用戶名或密碼,我也會相信會拋出異常)。

我認為返回的返回類型1不是錯誤代碼。 因為那是我的回報,並且運作良好。

您可以嘗試在try catch包圍ccc.SaveChanges() ,看看是否拋出任何異常。

我希望這有幫助。

首先,謝謝您,ryrich花時間幫助我。 事實證明,未顯示我的更改的原因是盡可能的愚蠢。 在我測試過的3台機器上,它是一致的。 這是我注意到的。 每次我運行上面的代碼時,它都可以正常工作,因為沒有錯誤,但是我看不到Component Services Console中的更改,令人困惑的是,我不得不完全關閉Component Services Console,然后重新啟動它,並且只能然后我可以看到更改。 在我測試過的所有三個系統上,此行為都是一致的。 1:WinXP sp3 2:Win 7 SP1 3:Win 2008 Server R2

我正在對此進行解釋,以防萬一其他人可能會看到這種STUPID行為...

暫無
暫無

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

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