誰能幫我出版Kentico CMS 9.當我發佈從Visual Studio應用程序,並上傳到服務器我收到此異常:出版Kentico CMS 9 - 異常WebFarmTaskManager.CanCreateTask
當我將計算機上的開發者文件夾中的文件上傳到相同的虛擬主機,一切運行良好。
你能幫助我嗎?
誰能幫我出版Kentico CMS 9.當我發佈從Visual Studio應用程序,並上傳到服務器我收到此異常:出版Kentico CMS 9 - 異常WebFarmTaskManager.CanCreateTask
當我將計算機上的開發者文件夾中的文件上傳到相同的虛擬主機,一切運行良好。
你能幫助我嗎?
問題只在從溶液中兩個項目發佈。
從Kentico 9發佈文件:
發佈的Web應用程序項目 如果您計劃從Visual Studio發佈,我們建議對網站配置中安裝Kentico項目。 要將Visual Studio的發佈功能用於Kentico Web應用程序項目,您需要將解決方案中的所有項目順序發佈到相同的目標位置: CMSApp CMSApp_AppCode 部署第一個項目後,確保您的發佈配置文件在發佈前刪除所有現有文件/刪除目標位置的其他文件選項已禁用。您可以在設置 - >文件發佈選項中的發佈網頁對話框中配置該選項。
這可能是一個缺陷,它不是內置的,Kentico 9仍然是新的,所以你可能想把它作爲一個bug記錄下來。
否則,儘管我相信在啓動的某個地方,您需要通過使用WebFarmHelper.RegisterTask來確實註冊農場任務,也許您可以嘗試使用自定義加載程序模塊在啓動時運行該代碼。
https://docs.kentico.com/display/K9/Handling+global+events
using CMS.Base;
using CMS.DocumentEngine;
[CustomDocumentEvents]
public partial class CMSModuleLoader
{
/// <summary>
/// Attribute class that ensures the loading of custom handlers.
/// </summary>
private class CustomDocumentEventsAttribute : CMSLoaderAttribute
{
/// <summary>
/// The system executes the Init method of the CMSModuleLoader attributes when the application starts.
/// </summary>
public override void Init()
{
// Call WebFarmHelper.RegisterTask here
}
}
}
謝謝大衛·斯拉維克。 正如你所說,然後發佈第一個CMSApp_AppCode,然後,在同一個文件夾CMSApp,但要小心,選項「刪除發佈之前的所有現有文件」已禁用。