Установка пакета Sitecore никогда не заканчивается
У меня возникла интересная проблема. Когда я устанавливаю пакет Sitecore, пользовательский интерфейс никогда не обновляется, когда пакет полностью установлен. Установка пакета Sitecore висит.
В журналах Sitecore я вижу:
ManagedPoolThread #18 11:36:00 INFO Installing item: items/master/sitecore/system/Tasks/Schedules/Portals/Default/{BEA47CD0-C3B3-4EFD-A781-997292620312}/nl/1/xml
ManagedPoolThread #18 11:36:00 INFO Installing item: items/master/sitecore/system/Tasks/Schedules/Portals/Default/foobar/{4E0129CF-1C03-4BC8-B049-7D641D46797C}/en/1/xml
ManagedPoolThread #18 11:36:00 INFO Installing item: items/master/sitecore/system/Tasks/Schedules/Portals/Default/foobar/{4E0129CF-1C03-4BC8-B049-7D641D46797C}/nl/1/xml
ManagedPoolThread #18 11:36:00 INFO Installing of blob values has been finished. Installed: 3 Skipped: 0
ManagedPoolThread #18 11:36:00 INFO Committing files.
ManagedPoolThread #11 11:36:00 INFO Job started: WatchStatus
Это означает, что все установлено правильно, но в Sitecore загрузочная панель все еще работает.
Кто-нибудь знает, что может вызвать это, потому что журналы пустые.
Ответы
Ответ 1
После много исследований в Sitecore.Kernel.dll я нашел решение.
После "INFO Committing files". запись в журнале появилась еще одна запись: "Начало работы: WatchStatus". Этот Иов никогда не заканчивался.
ItemInstaller
отвечает за журналы "Установка элемента:", а BlobInstaller
отвечает за то, что журнал "Установка значений blob был закончен".
В классе InstallPackageForm
функция WatchForInstallationStatus()
отвечает за logmessage "Job started: WatchStatus". Эта функция запускает новый поток, в котором он проверяет статус установки пакета, который хранится в папке temp.
В моем случае роль IIS_IUSRS не имела права на запись в папке temp. После того, как я изменил его, он сработал.
Вот как выглядит файл журнала:
ManagedPoolThread #7 12:45:57 INFO Committing files.
ManagedPoolThread #11 12:45:57 INFO Job started: WatchStatus
ManagedPoolThread #7 12:45:57 INFO Job ended: Install (units processed: )
ManagedPoolThread #11 12:45:58 INFO Job ended: WatchStatus (units processed: )
ManagedPoolThread #8 12:45:58 INFO Job started: InstallSecurity
ManagedPoolThread #8 12:45:58 INFO Installing security from package: <package>
Ответ 2
После установки по умолчанию 8.0 Update 4 вам нужно запустить mongo вручную.
Самый простой способ - установить mongo по умолчанию и запустить его из командной строки как: mongod.exe --dbpath c:\example_of_my_mongo_database_dir
Лучший способ - установить его в качестве службы Windows - http://mikerobbins.co.uk/2015/02/02/install-mongodb-as-a-windows-service-for-sitecore/
Как только вы это сделаете, вы сможете без проблем установить пакеты.
Ответ 3
Для всех, у кого есть эта проблема, может быть так же, как и у меня. У меня была такая же проблема, но не совсем с теми же трассировками стека, как указано выше.
Моя проблема заключалась в том, что у меня не было установленного/запущенного MongoDB, и это заставило его висеть, выбросив много ошибок в журналы. Выполнение простой установки и команды настройки пары с заранее определенными строками подключения, казалось, полностью ударили его в механизм.
Ответ 4
Параметр права на запись в папке temp для роли IIS_IUSRS также исправил проблему установки пакета Sitecore.
Ответ 5
Он работал у меня после того, как я дал разрешения на запись в IIS_IUSRS для папки веб-сайта Inetpub.
Немного странно, поскольку у меня уже есть полные разрешения для APPPooluser в папке веб-сайта.
Ответ 6
Если zip-пакет пакета Sitecore не завершает установку: в журнале была запись: "Задание запущено: WatchStatus". Эта работа никогда не заканчивалась.
Пакет хранится во временной папке на моем локальном компьютере, и вместо того, чтобы запускаться под учетной записью NETWORK SERVICE, которую использует веб-сайт, он работает с ролью IIS_IUSRS, для которой не было разрешений на изменение. Я предоставил разрешения на изменение этой роли и созданного пакета, как и ожидалось.