当两个Active Directory服务器中只有一个closures时,应用程序失败

当我拔下其中一个Active Directory服务器的以太网电缆时,尽pipenetworking上有一个不同的Active Directory服务器,但我的应用程序无法对用户进行身份validation。 这是为什么? 我期望,如果其中一个Active Directory服务器失败,其他人可以处理请求。

我使用Windows Server 2008 R2 64位。

我有一个IIS应用程序,用于对Active Directory进行身份validation。

string serverName = ConfigurationManager.AppSettings["AD.Server"]; string userName = ConfigurationManager.AppSettings["AD.User"]; string password = ConfigurationManager.AppSettings["AD.Password"]; _principalContext = new PrincipalContext(ContextType.Domain, serverName, userName, password); 

这里是configuration设置:

 <add key="AD.Server" value="192.168.0.1"/> <!--- THIS IS THE PRIMARY PRODUCTION SERVER --> <add key="AD.User" value="Domain\Administrator"/> <add key="AD.Password" value="******"/> 

然后,我build立了另一个Active Directory服务器(让它为192.168.0.2)。 它与生产服务器成功同步。 后来,当我closures第二个AD服务器时,我的应用程序失败,例外“服务器不可操作”。

这是为什么? 为什么应用程序依赖于第二台服务器,尽pipe在configuration中明确给出了另一台服务器?

你的区议会应该按照你期望的方式工作。

  • 运行DCdiag / a ,它报告任何失败?
  • 如果在“工作”DC离线时重新启动应用程序,它可能会工作,现在大概指向另一个DC(即,它是一个在启动时绑定到一个DC,然后不能再绑定到另一个DC它使用的是不可用的)?
  • 新的DC有多长时间了 – IIS需要有机会意识到它存在。
  • 您不需要指定域控制器 – 您应该将您的应用程序指向域,而不是服务器。

我对发生的事情有点困惑,在你的问题中,你首先说你希望它能够故障转移,但是你明确地告诉它要使用哪个DC。 如果您需要提供服务器名称,请尝试域名的DNS名称本身(company.local或其他)。 这将parsing为您域中每个DC的IP列表。

您是否将Active Directory中的所有计算机都设置为了解该辅助域控制器IP地址? 您可以在networkingconfiguration的DNS部分执行此操作。