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
Windows 7에서 같은 문제가 발생했지만 WinXP에서 정상적으로 작동합니다. Thankfully 히 나의 동료는 나에게이 지위를 보내었다. 감사. – Ghazaly