I have a method CreateContextForGlobalCatalog
that returns a PrincipalServer that connects to a global catalog:
PrincipalContext = new PrincipalContext(ContextType.Domain,
"forest.name:3268",
"dc=forest,dc=name",
ContextOptions.Negotiate,
userName, password);
Note: That is a reduced version of the method, normally the name and the container are parameters.
With this context I'm looping over objects from the database to get information from the global catalog in ActiveDirectory:
using (PrincipalContext principalContext = CreateContextForGlobalCatalog())
{
foreach (ADAccount adAccount in accounts){
Log.Debug("Connected server: " + principalContext.ConnectedServer);
// get some information from AD here ...
}
}
The Log.Debug
line logs the connected server from the PrincipalContext. I have a test setup containing only virtual machines.
My Problem: When I now disconnect that connected server (disable network adapter) I don't get an exception and get connected to a new server but the log messages still shows the original connected server albeit the server is not available anymore.
Is there a way to somehow refresh the connected server property or to get the information from somewhere else?
unfortunately, It will never be updated after initiation, the only workaround you can do is to recheck with every iteration if you are still connected or not
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With