2012-05-18 20 views
0

让我首先说我对活动目录相当陌生,并且我不是处理服务器配置的人(如果这确实是与服务器相关的问题)。但是,如果给予适当的建议,我可以将这些建议转达给正确的人。使用安全全局编录的Active Directory失败

我们正在运行一个大型ASP.NET C#.NET 3.5应用程序。

这是我们遇到之情况:

我创建了一个测试页面来测试我们的全局编录AD搜索。

从测试服务器1会出现以下情况:

使用GC://TEST.COM:3268(不安全) - >卓越的性能。

使用G:C // TEST.COM:3269(固定) - >大性能

从测试服务器2:

使用GC://TEST.COM:3268(不安全) - >很好的表现;很好的绩效。

使用G:C // TEST.COM:3269(secured) - >失败。

我看到的唯一的例外是:异常:“服务器不可操作”

我不认为这是一个代码问题的原因是测试服务器都运行相同的代码。当我们试图从测试服务器连接到GC的安全端口我们只有一个问题2.

下面是异常信息时,我尝试在服务器上运行它,我有倾销异常日志表:

目录服务Com异常(异常消息):服务器不可操作。 错误码:-2147016646 堆栈跟踪:

在System.DirectoryServices.DirectoryEntry.Bind(布尔throwIfFail)

在System.DirectoryServices.DirectoryEntry.Bind()在System.DirectoryServices.DirectoryEntry.get_AdsObject()

在System.DirectoryServices.DirectorySearcher.FindAll(布尔findMoreThanOne)

在System.DirectoryServices.DirectorySearcher.FindOne()在TestClass.GetUserDomainTest(用户名字符串)个

testclass.aspx.cs:行155

就像我说的,我不相信这是一个代码问题,但我已经封闭的代码是否会possilby帮助:

private string GetUserDomain2(string UserName) 
{ 
    string domainName = String.Empty; 
    try 
    { 
     // This is Test page code so we can change the values as we want 
     DirectoryEntry entry = new DirectoryEntry(txtGCPath.Text) 
     entry.Username = txtGCUserID.Text; 
     entry.Password = txtGCPassword.Text; 
     // Set SSL or leave default 
     if (cb1.Checked == true) 
     { 
      entry.AuthenticationType = AuthenticationTypes.SecureSocketsLayer; 
     } 

     DirectorySearcher search = new DirectorySearcher(); 
     search.SearchRoot = entry; 
     search.SearchScope = SearchScope.Subtree; 
     search.Filter = string.Format(txtGCFilter.Text, UserName); 


     SearchResult results = search.FindOne(); // CRASHES HERE 
     // Parsing code removed. 
     return domainName; 
    } 
+0

第二台服务器是否有证书有效? AD是否在3269上进行监听? –

+0

@Mohammed你有没有找到这个的根本原因?我也有完全一样的问题。 – StackTrace

回答

0

你不需要SSL,默认情况下不启用SSL。您可以使用Kerberos安全功能来完全加密流量。这就是我对SASL'QOP auth-conf所做的。

相关问题