4
我已經創建了一個控制檯應用程序,該應用程序在Tridion.AudienceManagement.API
API上執行簡單操作。當我啓動應用程序時,它所做的第一件事是參考UserContext.Current
,此時我會得到以下例外。Tridion.AudienceManagement.API在初始化期間拋出異常
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()
我確認已安裝受衆管理器並正在服務器上工作。
通過從登錄爲MTS用戶的shell運行程序,我們可以避免這個問題。起初我們認爲這個問題與日誌文件夾的文件系統權限有關,但是,即使授予完全控制也沒有幫助。
將運行代碼的procmon輸出作爲兩個用戶進行比較時,我們可以看到失敗的用戶在C:\ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys中創建了ACCESS DENIED文件名是一串長長的隨機字符。此訪問被拒絕MtsUser沒有看到。