簡體   English   中英

獲取PrincipalContext的連接服務器以獲取全局編錄

[英]Get the connected server of a PrincipalContext for global catalog

我有一個方法CreateContextForGlobalCatalog ,它返回一個連接到全局編錄的PrincipalServer

PrincipalContext = new PrincipalContext(ContextType.Domain,
                                        "forest.name:3268", 
                                        "dc=forest,dc=name", 
                                        ContextOptions.Negotiate, 
                                        userName, password);

注意:這是方法的簡化版本,通常名稱和容器是參數。

在這個上下文中,我循環遍歷數據庫中的對象,以從ActiveDirectory中的全局編錄中獲取信息:

using (PrincipalContext principalContext = CreateContextForGlobalCatalog())
{
    foreach (ADAccount adAccount in accounts){
       Log.Debug("Connected server: " + principalContext.ConnectedServer);

    // get some information from AD here ...
    }
}

Log.Debug行從PrincipalContext記錄連接的服務器。 我有一個只包含虛擬機的測試設置。

我的問題:當我現在斷開連接的服務器(禁用網絡適配器)時,我沒有得到異常並連接到新服務器,但日志消息仍顯示原始連接的服務器,盡管服務器不再可用。

有沒有辦法以某種方式刷新連接的服務器屬性或從其他地方獲取信息?

不幸的是,它永遠不會在啟動后更新,你可以做的唯一的解決方法是重新檢查每次迭代,如果你仍然連接或不

最簡單的解決方案可能是嘗試使用.Net的Ping類ping遠程服務器。

暫無
暫無

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

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