Работа функционала Creatio в Docker

Коллеги, привет!

 

Возможно я единственный такой чудесатый чувак, который пытается для локальной разработки развернуть Creatio в Docker, но может все же кто-то сталкивались с подобными проблемами.

 

Собственно, упаковка Creatio 7.16.4 full bundle в docker image и запуск связки Redis+Postgres+Creatio особых проблем не вызвала. Но вот по функциональности остаются вопросы.

 

1. Когда я просто пытаюсь войти в конфигуратор, то получаю 404 ошибку (т.е. ссылка на документ по его ID оказалась не найдена - https://localhost/ViewPage.aspx?Id=5e5f9a9e-aa7d-407d-9e1e-1c24c3f9b59a). Тут я "обошел" проблему просто вбив https://localhost/dev и вошел в обновленный конфигуратор. 

 

2. Дальше я попытался перейти в список SVN repos, но оно бесконечно грузится. Ошибка возникает при попытке получить список репозиториев через сервис, который вроде как должен быть, но его нет (https://localhost/ServiceModel/SourceControlService.svc/GetRepositories отдает 404 ошибку).

 

3. Ну, думаю, фиг с ним. Решил загрузить свой пакет из файла и он у меня валится при компиляции с ошибкой error CS0117: 'HttpContext' does not contain a definition for 'Current' на строчке:

UserConnection userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];

 

Что-то сильно изменилось в этом плане? Т.е. теперь для того, чтобы плагины работали для .net Core версии их надо как-то адаптировать? Может есть уже какая-то документация на предмет миграции кода или его универсализации?

 

Нравится

1 комментарий

Максим, по первому вопросу, вероятно, дело в том, что Вы используете версию под Net Core. Там нет частей системы, сделанных на основе интерфейса 5.Х, то есть до версии 7.17 не было раздела «Конфигурация», где его переписали. Странно, что на 7.16.4 удалось войти в обновлённый конфигуратор, возможно, это была какая-то его бета-версия.

 

По второму вопросу не уверен, либо тоже какие-то ограничения этой платформы, либо что-то не так настроили при установке. Как проводится установка на Docker, есть в статье. В любом случае, для более полной поддержки Net Core лучше будет обновиться до 7.17 и проверить наличие сервиса уже там.

 

По третьему, опять же, дело в Net Core. Чтобы сделать универсальный скрипт, работающий и там, и под Net Framework, нужно внести в коде некоторые правки:

Для обеспечения миграции от ASP.NET Framework к ASP.Net Core сервисов, реализованых без наследования базового класса Terrasoft.Web.Common.BaseService, предоставлена возможность получать контекст двумя способами:

  • Не рекомендуемый способ: получать контекст через статическое свойство HttpContext.Current. Для обеспечения легкой миграции от фреймворка ASP.NET Framework к ASP.Net Core нужно добавить в исходный код сервиса с помощью директивы using пространство имен Terrasoft.Web.Http.Abstractions, в котором реализован унифицированный доступ к HttpContext, используя статическое свойство HttpContext.Current. При адаптации старого кода к новому фреймворку достаточно заменить namespace System.Web на Terrasoft.Web.Http.Abstractions.
  • Рекомендуемый способ: получать контекст через IHttpContextAccessor зарегистрированный в DI (ClassFactory) . Этот способ позволяет покрывать код тестами. Подробнее об использовании фабрики классов можно узнать из статьи "Замещающие классы".

Подробнее об этом см. статью.

Показать все комментарии