特定の名前を含むすべてのグループを Active Directory から内部データベースにロードする ASP.NET Web API アプリケーションがあります。
これは開発に取り組んでいました。PC (Windows 10)、Testserver および古い本稼働サーバー (Windows Server 2012 R2) ですが、新しい本稼働サーバー (Windows 2016) では、同じ方法で例外が発生しました。
削除対象としてマークされたレジストリ キーに対して不正な操作が試行されました。
ここにコード:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
GroupPrincipal qbeGroup = new GroupPrincipal(ctx);
PrincipalSearcher srch = new PrincipalSearcher(qbeGroup);
var adGroups = srch.FindAll().Where(w => w.Name.Contains("_FS", StringComparison.InvariantCultureIgnoreCase));
var permissions = new List<PermissionGroup>();
// find all matches
foreach (var found in adGroups) {
var permission = new PermissionGroup(found.Name, found.Sid.ToString());
permissions.Add(permission);
}
追加情報: Windows Server 2016 Datacenter バージョン 10.0.14393 ビルド 14393
.NET Framework をインストール (Server 2016) .NET Framework 4.8 を使用 .NET Framework 7 を使用
誰かがアイデアを持っています、何が問題なのですか?ありがとう
追加: 08.01.2020 16:11 (UTC +1)
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.Runtime.InteropServices.COMException: 削除対象としてマークされたレジストリ キーに対して不正な操作が試行されました。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[COMException (0x800703fa): 削除対象としてマークされたレジストリ キーに対して不正な操作が試行されました。]
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +535 System.DirectoryServices.DirectoryEntry.Bind() +48
System.DirectoryServices.DirectoryEntry.get_AdsObject() +43
System.DirectoryServices.PropertyValueCollection.PopulateList() +27
System.DirectoryServices .PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) +122
System.DirectoryServices.PropertyCollection.get_Item(String propertyName) +168
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +194 System.DirectoryServices.DirectoryEntry.Bind() + 48
System.DirectoryServices.DirectoryEntry.get_AdsObject() +43
System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne) +91 System.DirectoryServices.DirectorySearcher.FindOne
() +46
\FragranceStudio.Webservice.Common\Helper\ActiveDirectoryHelper.cs:70 FragranceStudio.Webservice.Common.Security.ExtendedPermissionProvider.ReloadInheritedPermissionGroups (FragranceStudioPrincipal プリンシパル) C:\Repositories\VS2017\FragranceStudio\FragranceStudio\FragranceStudio.Webservice.Common.Security\ExtendedPermissionProvider .cs:142[FragranceStudioException: 不明なエラーが発生しました。もう一度やり直すか、サービスデスクにお問い合わせください。]
C:\Repositories\VS2017\FragranceStudio\FragranceStudio\FragranceStudio.Webservice.Common.Security\ExtendedPermissionProvider.cs:169 の FragranceStudio.Webservice.Common.Security.ExtendedPermissionProvider.ReloadInheritedPermissionGroups (FragranceStudioPrincipal プリンシパル)。 C:\Repositories\VS2017\FragranceStudio\FragranceStudio\FragranceStudio.Webservice.Common.Security\ExtendedPermissionProvider.cs:62 FragranceStudio.Webservice.Common.DomainEntities.Security.FragranceStudioPrincipal..ctor(IExtendedPermissionProvider extendedPermissionProvider, WindowsPrincipal principal ) C:\Repositories\VS2017\FragranceStudio\FragranceStudio\FragranceStudio.Webservice にあります。Common\DomainEntities\Security\FragranceStudioPrincipal.cs:55 FragranceStudio.Webservice.WebApiApplication.Application_PostAuthenticateRequest(Object sender, EventArgs e) in C:\Repositories\VS2017\FragranceStudio\FragranceStudio\FragranceStudio.Webservice\Global.asax.cs:51 システム。 Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +223 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep ステップ) +220 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ、Boolean& completedSynchronously) +94Execute() +223 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep ステップ) +220 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ、Boolean& completedSynchronously) +94Execute() +223 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep ステップ) +220 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ、Boolean& completedSynchronously) +94