Tridion.AudienceManagement.API
APIで単純なアクションを実行するコンソール アプリケーションを作成しました。アプリケーションを起動すると、最初に参照UserContext.Current
が行われ、その時点で次の例外が発生します。
The type initializer for 'Tridion.AudienceManagement.DomainModel.Utilities.Configuration' threw an exception.
at Tridion.AudienceManagement.DomainModel.Utilities.Configuration.get_LogFolder()
at Tridion.AudienceManagement.DomainModel.Utilities.Logger.AssertValidLogFolder()
at Tridion.AudienceManagement.DomainModel.Utilities.Logger.WriteLine(LogLevel logLevel, String message, Object[] objects)
at Tridion.AudienceManagement.DomainModel.ServiceClient.ContentManagerClient.LogBindingInfo(Exception ex)
at Tridion.AudienceManagement.DomainModel.ServiceClient.ContentManagerClient.GetConfiguredCoreService()
at Tridion.AudienceManagement.DomainModel.ServiceClient.ContentManagerClient.GetClient(UserContext userContext, UserData& userData)
at Tridion.AudienceManagement.DomainModel.ServiceClient.ContentManagerClient.LoadCurrentUser(UserContext userContext, String userDataXml)
at Tridion.AudienceManagement.DomainModel.UserContext..ctor(String trusteeName)
at Tridion.AudienceManagement.API.UserContext..ctor()
at Tridion.AudienceManagement.API.UserContext.get_Current()
サーバーに Audience Manager がインストールされ、動作していることを確認しました。
MTS ユーザーとしてログインしたシェルからプログラムを実行することで、この問題を回避できます。最初は、ログ フォルダーに対するファイル システムのアクセス許可に問題があると考えていましたが、フル コントロールを許可しても問題は解決しませんでした。
2 人のユーザーとしてコードを実行したときの procmon の出力を比較すると、失敗したユーザーは、C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 内にファイルを作成するために ACCESS DENIED を取得していることがわかります。ファイル名は長いです。ランダムに見える文字列。この ACCESS DENIED は MtsUser には見られません。