表单身份验证:“无法联系服务器”

时间:2014-08-01 14:05:57

标签: c# asp.net active-directory iis-7.5 forms-authentication

我将以下内容添加到我想要登录的应用程序的web.config中:

<authentication mode="Forms">
  <forms loginUrl="/forms/Login" name=".ASPXAUTH" timeout="60" slidingExpiration="true">
  </forms>
</authentication>
<authorization>
  <deny users="?" />
</authorization>

/ forms / Login是用于在同一服务器上验证应用程序的集中式应用程序。 它有一个简单的Authentication类,使用以下方法:

    public static bool AuthenticateUser(String username, String password)
    {
        bool validated = false;
        PrincipalContext pc = new PrincipalContext(ContextType.Domain, "mynet.myad.org", "dc=mynet,dc=myad,dc=org");
        validated = pc.ValidateCredentials(username, password, ContextOptions.Negotiate);
        return validated;
    }

这在大多数情况下效果很好但有时似乎“锁定”并且会引发以下异常:“无法联系服务器。”在我重新启动Web服务器或卸载/重新安装登录应用程序之前,它将继续抛出该异常。 (我尝试重新启动IIS,但这对它没有影响)。

我很确定它不是AD服务器,因为同一登录代码同时继续在其他Web服务器上运行。我显然不想不断重启Web服务器或重新安装登录应用程序。

我真的不知道从哪里开始排除故障。 任何有关这方面的帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我假设您在域中有多个域控制器?如果是这样,听起来其中一个可能是你的罪魁祸首。我的建议是,下次发生这种情况时,您会从受影响的服务器收集网络跟踪并重现问题。如果存在DNS或连接问题,我不会感到惊讶。