2012-05-18 19 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所做的。

相關問題