2

System.DirectoryServices.DirectoryServicesCOMException : 操作エラーが発生しましたが、まだコメントできず、回答がありません。

この質問の解決策はうまくいきませんでした。発行時のエラー: System.DirectoryServices.DirectoryServicesCOMException

Visual Studio 2010 で Razor ビュー エンジンを使用した新しい ASP.NET MVC 3 Web アプリケーション プロジェクトを作成しました。これは、ホーム コントローラーに 2 行のコードを追加System.DirectoryServices.AccountManagementし、プロジェクトに参照を追加して生成されたものです。

これはローカル PC では正常に動作しますが、作成した Windows 2008 R2 IIS 7.5 サイトでエラーが発生します。

このサイトは を使用しておりdefaultAppPool、これは を使用していApplicationPoolIdentityます。ルート サイト フォルダーにはIUSRIIS AppPool\DefaultAppPool読み取りアクセス許可が付与されています。

コントローラーの 2 行のコードは次のとおりです。

PrincipalContext context = new PrincipalContext(ContextType.Domain);
ViewBag.name = UserPrincipal.FindByIdentity(context, User.Identity.Name).DisplayName;

私が得るエラーは次のとおりです。

System.DirectoryServices.DirectoryServicesCOMException: 操作エラーが発生しました。

スタックトレース:

[ DirectoryServicesCOMException ( 0x80072020):操作エラーが発生しました
。.PropertyValueCollection.PopulateList() +29 System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) +119 System.DirectoryServices.PropertyCollection.get_Item(String propertyName) +163 System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer() + 535649 System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit() +51







System.DirectoryServices.AccountManagement.PrincipalContext.Initialize() +141
System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx() +42
System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext context, Type principalType, Nullable 2 parameters) +248 System. Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 1 継続) +640 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList 2 パラメータ) +312 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext、文字列 actionName) +6911 identityType, String identityValue, DateTime refDate) +27
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95
ActiveDirectory.Controllers.HomeController.Index() in C:\projects\ActiveDirectory\ActiveDirectory\Controllers\HomeController.cs:18
lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary

2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func

1 filters, ActionDescriptor actionDescriptor, IDictionary

System.Web.Mvc.Controller.ExecuteCore() +162
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +305
System.Web.Mvc.<>c__DisplayClassb.b__5() +62
System.Web.Mvc.Async .<>c__DisplayClass1.b__0() +20
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375

親切にしてください、それは私の最初の質問です!

4

1 に答える 1

4

ほとんどの場合、これは権限の問題です。アプリケーション プールが実行されているアカウントに、これらの Active Directory 呼び出しを実行する権限があることを確認してください。ローカル マシン アカウントの場合は、おそらくそうではありません。

詳細については、http: //msdn.microsoft.com/en-US/library/ms180891 (v=vs.80).aspx を参照してください。

于 2013-01-15T15:10:51.170 に答える