Azman のすべてのアプリとそのすべての役割をループするこの単純なコードがあります。ロールにユーザーが割り当てられていない場合、うまく機能します。しかし、ユーザーを割り当てた瞬間 (2 つのロールには 7000 人のユーザーがいる)、アプリが foreach(IAzRole in _azApp.Roles) コードでハングします。基本的には、ロール コレクションにアクセスするとハングし、40 分ほどかかります。それから。これはまったく受け入れられません。誰でも私に解決策を教えてもらえますか? 私が欲しいのは役割の割り当て名のリストだけです。役割の割り当てによってこれが遅くなるのはなぜですか...?
PS: すべてのユーザーが ADAM にあり、Azman ストアも ADAM にあります。IAzTasks (roledefinition=1) をループしてみましたが、これも遅いです。
public override string[] GetAllRoles()
{
List<string> rolesList = new List<string>();
foreach (IAzApplication2 _azApp in AZManStore.Applications)
{
foreach (IAzRole role in _azApp.Roles)
{
//Weird that Roles are retrieved using tasks collection
if (!rolesList.Exists(delegate(string x) { return x == role.Name; }))
rolesList.Add(role.Name);
}
}
return rolesList.ToArray();
}