簡體   English   中英

Episerver預定作業失敗(調度程序服務)

[英]Episerver Scheduled Job fails (scheduler service)

從昨天開始,我們的計划作業開始失敗,並顯示以下錯誤消息:

CustomUpdate.Execute-System.NullReferenceException:對象引用未設置為對象的實例。 在System.Web.Security.Roles.GetRolesForUser(字符串用戶名)處EPiServer.Security.PrincipalInfo.CreatePrincipal(字符串用戶名)

計划的作業使用匿名執行,並使用以下調用以編程方式登錄:

if (PrincipalInfo.CurrentPrincipal.Identity.Name == string.Empty)
{
     PrincipalInfo.CurrentPrincipal = PrincipalInfo.CreatePrincipal(ApplicationSettings.ScheduledJobUsername);
}

我在Episerver.Security中的PrincipalInfo.CreatePrincipal調用中添加了更多日志記錄,並注意到PrincipalInfo.CreatePrincipal調用System.Web.Security.Roles.GetRolesForUser(username)和Roles.GetRolesForUser(username)返回一個空字符串數組。 沒有代碼明智的更改或在服務器上(更新等)進行更改。 我檢查了用於運行任務的用戶名是否在數據庫中,並且具有與之關聯的角色。 我檢查了應用程序名稱是否正確設置並與用戶相關聯。如果我使用同一用戶手動運行作業,則執行該程序不會出現問題(我知道手動運行作業與使用調度程序之間存在差異),我也嘗試創建一個新用戶,也沒有用。 有沒有人遇到相同或相似的問題? 有什么想法如何解決這個問題?

我終於發現了一個問題-應用程序池運行了多個工作進程(在我的實例中,我有兩個工作進程)。 一旦我將工作流程設置為一個,一切便再次開始工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM