我試圖在運行Windows Server 2008 R2(IIS7安裝)的ASP.Net(4.0)應用程序中查詢AD。 (當作爲2.0應用程序運行時,它也失敗)無法查詢AD(獲取DirectoryServicesCOMException)
這對我來說並不是什麼新東西,因爲我以前做過這麼多次。我寫了一個小型的ASP.Net程序,可以在我自己的機器上運行(帶有IIS6的Windows XP),但在2008年的版本中運行時失敗。
(其結果是,你看到的組列表用戶在文本框的成員)
(on button_click)
var userName = txtUserName.Text;
if (userName.Trim().Length == 0)
{
txtResults.Text = "-- MISSING USER NAME --";
return;
}
var entry = new DirectoryEntry("LDAP://blah.blah/DC=blah,DC=blah",
"cn=acct, dc=blah, dc=blah",
"pass");
var search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + userName + ")";
search.PropertiesToLoad.Add("memberOf");
var groupsList = new StringBuilder();
var result = search.FindOne();
if (result != null)
{
int groupCount = result.Properties["memberOf"].Count;
for (int counter = 0; counter < groupCount; counter++)
{
groupsList.Append((string)result.Properties["memberOf"][counter]);
groupsList.Append("\r\n");
}
}
txtResults.Text = groupsList.ToString();
當我運行這段代碼我得到search.FindOne()以下錯誤:
System.DirectoryServices.DirectoryServicesCOMException (0x8007203B): A local error has occurred.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)
at System.DirectoryServices.DirectorySearcher.FindOne()
at WebApplication1._Default.btnSearch_Click(Object sender, EventArgs e)
我們已經做了大量的研究,並調整了我們可以想到的每個IIS7設置,但目前爲止還沒有。任何線索?
這一工程!謝謝! – KevinDeus 2010-08-12 22:00:45
在Windows 7上有相同的問題,但它在WinXP上正常工作。謝天謝地,我的同事給我發了這篇文章。謝謝。 – Ghazaly 2011-04-04 06:41:09