...

Ошибка после перезагрузки сервера

Тема в разделе "Проблемы/ошибки", создана пользователем LumaRay, 18 дек 2018.

  1. LumaRay

    LumaRay New Member

    Здравствуйте.

    Установил на Windows Server 2016, открыл порт 8000 - всё заработало: и клиент через браузер, и дизайнер.
    Однако решил выполнить перезагрузку сервера.
    После перезагрузки клиент в браузере начал выдавать ошибку:
    *EleWise.ELMA.Runtime.Exceptions.ConfigurationInitializeException: Ошибка инициализации конфигурации ELMA ---> System.InvalidOperationException: Cannot check database exists ---> Devart.Data.PostgreSql.PgSqlException: No connection could be made because the target machine actively refused it 127.0.0.1:5433
    at Devart.Data.PostgreSql.o.v()
    at Devart.Data.PostgreSql.o..ctor(e A_0)
    at Devart.Data.PostgreSql.w.a(DbConnectionOptions A_0, Object A_1, DbConnectionBase A_2)
    at Devart.Common.DbConnectionFactory.a(DbConnectionPool A_0, DbConnectionOptions A_1, DbConnectionBase A_2)
    at Devart.Common.DbConnectionPool.a(DbConnectionBase A_0)
    at Devart.Common.DbConnectionPool.GetObject(DbConnectionBase owningConnection)
    at Devart.Common.DbConnectionFactory.b(DbConnectionBase A_0)
    at Devart.Common.DbConnectionClosed.Open(DbConnectionBase outerConnection)
    at Devart.Common.DbConnectionBase.Open()
    at Devart.Data.PostgreSql.PgSqlConnection.Open()
    at EleWise.ELMA.Extensions.PostgreSQL.PostgreSQLProvider.IsDatabaseExists(String connectionString)
    --- End of inner exception stack trace ---
    at EleWise.ELMA.Extensions.PostgreSQL.PostgreSQLProvider.IsDatabaseExists(String connectionString)
    at EleWise.ELMA.Extensions.PostgreSQL.PostgreSQLProvider.InitInternal()
    at EleWise.ELMA.Extensions.PostgreSQL.PostgreSQLProvider.CreateTransformationProvider()
    at EleWise.ELMA.Runtime.RuntimeApplication..ctor(String configurationFileName, Type sessionProviderType, String[] assembiesPath, Dictionary`2 extenderParams)
    --- End of inner exception stack trace ---
    at EleWise.ELMA.Runtime.RuntimeApplication..ctor(String configurationFileName, Type sessionProviderType, String[] assembiesPath, Dictionary`2 extenderParams)
    at EleWise.ELMA.Runtime.RuntimeApplication..ctor(String configurationFileName, Type sessionProviderType, String[] assembiesPath)
    at EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.RegisterComponents(Object componentManager)
    at EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.jAED92cdfeHP0dB5EW(Object )
    at EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.StartApplicationInThread()
    Ошибка инициализации конфигурации ELMA
    EleWise.ELMA.SDK
    at EleWise.ELMA.Runtime.RuntimeApplication..ctor(String configurationFileName, Type sessionProviderType, String[] assembiesPath, Dictionary`2 extenderParams)
    at EleWise.ELMA.Runtime.RuntimeApplication..ctor(String configurationFileName, Type sessionProviderType, String[] assembiesPath)
    at EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.RegisterComponents(Object componentManager)
    at EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.jAED92cdfeHP0dB5EW(Object )
    at EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.StartApplicationInThread()*

    Запускаю дизайнер - выдает "Не удалось запустить сервер".
    Уже и порт 5433 явно открыл на вход и выход для Private Networks.
    И зашел в сервисы и вручную запустил ElmaPostgreSQLCE (не был запущен после перезагрузки сервера).
    Не помогает.
     
  2. LumaRay

    LumaRay New Member

    Зашел в свойства службы, скопировал командную строку и выполнил в cmd.exe - выдало ошибку 1063, что не может запустить службу. Что это за ошибка может быть?
     
  3. LumaRay

    LumaRay New Member

    Попытался зайти в свойства службы и изменить на вкладке "Log On" на запуск от Local System Account - безрезультатно, та же ошибка.
     
  4. LumaRay

    LumaRay New Member

    При попытке запустить PostgreSQL из cmd.exe было много ошибок плана "Permission Denied". В итоге удалил некоторые файлы блокировки и кеша, некоторым файлам логов назначил разрешения на пользователей Users, в командной строке postgre начал запускаться без ошибок, но общая ошибка доступа к дизайнеру и веб-интерфейсу осталась прежней.
     
  5. pushkarev

    pushkarev Active Member

    У вас ошибка при попытке установки соединения ELMA с БД. Вот тут подсказывают, что проблема или в том, что порт неверно указан или postgresql все таки незапустился, или брандмауэр рубит подключение. Проверьте, можете ли вы к postgre подключиться например pgAdmin-ом.
     
  6. LumaRay

    LumaRay New Member

    В итоге переустановил Элму, полностью удалив каталог.
    Все заработало снова с нуля.
    Перезагрузил сервер.
    Снова та же ошибка.
    То есть сбой происходит при перезагрузке после установки и первого запуска.
    Открываю pgAdmin - он не видит серверов вообще. То есть сам сервер postgres не запускается.
    Но ведь после установки он запускался.
    Отчего он может перестать запускаться после перезагрузки под Windows Server 2016?
     
  7. LumaRay

    LumaRay New Member

    Когда запускаю через pg_ctl в cmd.exe, выдает ошибку:
    Could not create file postmaster.opts - Permission denied
    Я так понял, что это файл-блокировщик, который создается при запуске сервера postgres.
    Может он не был удален нормально по каким-то причинам?
    Может Windows Server 2016 почему-то по-жесткому перезагрузил Postgres вместо то, чтобы аккуратно закрыть?
     
  8. LumaRay

    LumaRay New Member

    Если я удаляю postmaster.opts, то этой ошибки больше не возникает, но возникает другая:
    LOG: Could not remove cache file "base/16384/pg_internal.init": Permission denied
    Затем следует череда ошибок:
    ERROR: could not open file "base/16384/2662": Permission denied
     
  9. LumaRay

    LumaRay New Member

    Когда же я вызываю pg_ctl stop, то вылетает следующее:
    PANIC: could not open file "pg_xlog/000000010000000000000003": Permission denied
    LOG: checkpointer process (PID 780) was terminated by exception 0xC0000409
     
  10. pushkarev

    pushkarev Active Member

    В общем идет какая-то ошибка именно с postgreSQL, нужно копать в эту сторону, почему он не работает на 2016 сервере. Просто элму переустанавливать смысла нет. Я бы порекомендовал удалить PosgreSQL и скачать его с официального сайта и установить последнюю версию. Проверить работает ли, потом нужно пробовать перезагружаться и смотреть, поднимается ли он. Если все поднимется, то поставить элму без установки postgre, просто указав существующую базу.
     
  11. LumaRay

    LumaRay New Member

    Копаю вот эту версию.
    Запустил-таки сервер, подключился к нему через pgAdmin.
    Но не удалось открыть базу ELMA3, расположенную в base/16384
    Когда для папки base/16384 и вложенных файлов добавил полные права для группы Users (хотя группы NETWORK SERVICE, SYSTEM, Administrators уже имели полные права там), база стала открываться под phAdmin'ом.
    В итоге таки запустил postgres без ошибок, после этого остановил и запустил снова веб-сервер ELMA.
    Вроде заработало...
    То есть получается, что почему-то под Windows Server 2016 служба ElmaPostgreSQLCE запускает pg_ctl с правами доступа группы Users, а не Network Service, как прописано у нее в настройках...
    Может нужна какая-то другая строка запуска, чтобы явно указать, что pg_ctl должен выполниться от имени NETWORK SERVICES?
    Или может обычное Windows-приложение (не служба, т.е. pg_ctl.exe) и не может выполняться от имени NETWORK SERVICES?
     
  12. LumaRay

    LumaRay New Member

    Еще вижу, что после установки в свойствах службы ElmaPostgreSQLCE используется ключ запуска "runservice", тогда как в этой статье https://www.postgresql.org/docs/9.0/app-pg-ctl.html такого ключа нет, вместо него описан ключ "register".
     
  13. pushkarev

    pushkarev Active Member

    Вообще я рекомендую, не устанавливать ELMA как службу (там по сути используется встроенный веб сервер Cassini и в нем крутится уже само приложение ELMA). Лучше разворачивать ELMA на IIS. Postgre тоже лучше ставить из отдельного дистрибутива.
     
  14. LumaRay

    LumaRay New Member

    При установке на эту операционку у меня не было выбора ставить на IIS - возможность этого выбора была "засерена".
    И установить не как службу (а как приложение в трее) - тоже не было выбора такого при установке, в отличие от случая, когда я ранее ставил на Windows 10.
    Просто я решил воспользоваться платным хостингом на Windows Server, и вот только так получилось поставить... Почему-то только такой выбор был.
    Ну конечно PostgreSQL можно было установить отдельно - это да.
     
  15. pushkarev

    pushkarev Active Member

    Видимо в ваше системе не установлен компонент IIS, поэтому он и не был доступен при установке.
     

Поделиться: