Доброго дня! Подскажите, в чем может быть проблема? Возникли трудности с действиями в конфигураторе - с компиляцией, обновлением из файлов и тп - пишет, что время компиляции истекло или сервер не отвечает. В логах системы нахожу вот это:

{ "time": "2024-02-27 09:41:33.8294", "level": "WARN", "app": "w3wp", "thread": "393", "message": {"SQL":"\nINSERT INTO [dbo].[SysProcessElementLog]([Id], [CreatedOn], [CreatedById], [ModifiedOn], [ModifiedById], [StartDate], [SysProcessId], [Caption], [StatusId], [Type], [SchemaElementUId], [OwnerId], [ErrorDescription], [NodeId])\n\tVALUES(@Id, @CreatedOn, @CreatedById, @ModifiedOn, @ModifiedById, @StartDate, @SysProcessId, @Caption, @StatusId, @Type, @SchemaElementUId, @OwnerId, @ErrorDescription, @NodeId)","ErrorMessage":"Конфликт инструкции INSERT с ограничением FOREIGN KEY \"FKTQLhPckOuXfL4S8XTK2ODa6vErc\". Конфликт произошел в базе данных \"Marketing\", таблица \"dbo.SysProcessLog\", column 'Id'.\r\nВыполнение данной инструкции было прервано.","Parameters":[]} }

Нравится

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

Добрый день.



Предоставленная Вами ошибка говорит о том, что произошел конфликт по ключу FKTQLhPckOuXfL4S8XTK2ODa6vErc, который присутствует в таблице SysProcessLog - журнал процессов.

По нашему опыту, такая ошибка не может быть связана с компиляцией системы и ,скорее всего, в логах приложения есть другие ошибки, которые могут указывать на причины проблемы компиляции.



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



Спасибо.

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

Добрый день, при изменении дашбордов и компиляции возникает ошибка. При этом данная ошибка появляется только в одной среде. В остальных всё работает корректно. На данный момент нету предположений о причине возникновения такой ошибки, единственное чем отличается данная среда от других это тем что на данную среду можно попасть по двум ссылкам.

Error while executing element Name = ScriptVwWorkspaceObjectsUpdated UId = 71be0708-dede-4ab1-b9d4-0df319348242 SchemaElementUId = 2bdc98ab-bf56-48ee-9ec3-e71d569a42eb	
"System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.<>c__DisplayClass15_0.<Compare>b__0(SchemaInfo newSchemaPublishInfo)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)"

 

Нравится

2 комментария

Добрый день!

 

Даная ошибка указывает на то, что у вас в системе присутствуют элементы с одинаковым названием или заголовком. По этому мы советуем проверить на наличие таких элементов в пакетах которые вы последнее время обновляли или устанавливали.

 

В случае если у вас возникнут трудности или же дополнительные проблемы, пожалуйста, создайте запрос обратившись на почту support@creatio.com.

Kyrylo Atamanenko,

Спасибо за комментарий.



Я проверил записи в таблице SysSchema, группировал по колонкам 

"ManagerName", "Caption" и "ManagerName", "Name", там правда есть дубли, но они присутствуют из-за замещения объектов и страниц. В моём пакете тоже присутствуют дубли при группировке по колонкам "ManagerName", "Caption", но при группировке по колонкам"ManagerName", "Name" дублей нету.  На данный момент не уверен что проблема связана с дублями в колонке "Caption", ибо в базовых пакетах такая же ситуация. 



Я думаю вы правы что проблема кроется в одинаковых названия, но я не совсем понимаю в каких именно элементов. Сегодня проводил установку пакета с доработками и релиз прошёл успешно, но при этом если запускать компиляцию из конфигуратора, то получаю такую же ошибку



Может быть я что-то упустил. Куда я могу ещё обратить внимание?

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

Удалял рабочее место вместе с пакетом, и после этого начали возникать ошибки компиляции

Contact.BackReferences.Base.cs The type or namespace name 'UsrContractorFile' could not be found (are you missing a using directive or an assembly reference?) CS0246473

ContactType.BackReferences.Base.cs The type or namespace name 'UsrContacts' could not be found (are you missing a using directive or an assembly reference?) CS024638

FileType.BackReferences.Base.cs The type or namespace name 'UsrContractorFile' could not be found (are you missing a using directive or an assembly reference?) CS0246188



Как решить эту проблему?

Нравится

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

Добрый день!

Попробуйте сначала выполнить полную генерацию системы, а после полную компиляцию. 

Если на элементах есть ошибки требующие установки или обновления БД, то нужно по каждому элементу провести установку, а потом выполнить компиляцию

 

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

В предыдущем моем вопросе упомянули что это можно сделать, но как не подсказали и в документации не нашел. Может кто-то знает, буду благодарен

Нравится

1 комментарий
Лучший ответ

Добрый день, Евгений.

Снизу прикрепил пример, где я добавил конкретный участок кода в исключение при компиляции. В результате warning CS4014 не появился. Можно реализовать не только препроцессором.

Более детально можно найти в официальной документации:

https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/supp…

using System;
using System.Threading.Tasks;
 
public static class Test{
 
	static void CallingMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("  Entering calling method.");
 
		// Call #1.
		// Call an async method. Because you don't await it, its completion
		// isn't coordinated with the current method, CallingMethodAsync.
		// The following line causes warning CS4014.
		#pragma warning disable CS4014
		CalledMethodAsync(millisecondsDelay);
		#pragma warning restore CS4014
	}
 
	static async Task CalledMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("    Entering called method, starting and awaiting Task.Delay.");
 
		await Task.Delay(millisecondsDelay);
 
		Console.WriteLine("    Task.Delay is finished--returning from called method.");
	}
}

 

Добрый день, Евгений.

Снизу прикрепил пример, где я добавил конкретный участок кода в исключение при компиляции. В результате warning CS4014 не появился. Можно реализовать не только препроцессором.

Более детально можно найти в официальной документации:

https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/supp…

using System;
using System.Threading.Tasks;
 
public static class Test{
 
	static void CallingMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("  Entering calling method.");
 
		// Call #1.
		// Call an async method. Because you don't await it, its completion
		// isn't coordinated with the current method, CallingMethodAsync.
		// The following line causes warning CS4014.
		#pragma warning disable CS4014
		CalledMethodAsync(millisecondsDelay);
		#pragma warning restore CS4014
	}
 
	static async Task CalledMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("    Entering called method, starting and awaiting Task.Delay.");
 
		await Task.Delay(millisecondsDelay);
 
		Console.WriteLine("    Task.Delay is finished--returning from called method.");
	}
}

 

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

Доброго времени суток.

На версии 7.17.3 при компиляции возникает ошибка. 

Изображение удалено.

Система Creatio развернута на ноутбуке, где установлена Windows 10 Pro, ver 21H1. В системе установлено около 20-ти кастомных пакетов различных разработок.

Объема свободного дискового пространства на диске С, где развернут сайт и БД MS SQL, около 160 ГБ. ОЗУ 16 ГБ. Так как в сборке Windows установлен .Net Framework 4.8, то установил NDP472-DevPack-ENU и dotnet-sdk-3.1.301-win-x64, взятые на академии.

Не пойму, почему не хватает памяти.

На других машинах с меньшими объемами памяти компилируется без проблем. Но там версии Windows 10 более старые, то есть нет .Net Framework 4.8

Разворачивал чистую Creatio без доработок. Компиляция проходила без ошибок. 

Может кто-то сталкивался с подобной проблемой? 

 

Нравится

2 комментария
Лучший ответ

Кирилл Александрович, здравствуйте!

 

Попробуйте перед компиляцией, очистить кеш Redis, выполнить генерацию исходного кода для всех без исключения схем текущей конфигурации. После выполненных действий повторить компиляцию заново.

 

 

Кирилл Александрович, здравствуйте!

 

Попробуйте перед компиляцией, очистить кеш Redis, выполнить генерацию исходного кода для всех без исключения схем текущей конфигурации. После выполненных действий повторить компиляцию заново.

 

 

Спасибо. Так и сделал. Именно генерация кода для всех схем помогла

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

Приложение компилируется 8-10 минут, через "компилировать все", режим разработки в базе данных.

 

Кто знает, с чем может быть связано и как ускорить процесс?

Нравится

4 комментария

Денис, время компиляции  увеличилось из-за длительной генерации статического контента. Это происходит с версии 7.11.



При «компилировать всё» на БД MS SQL, на коробке, продукт бандл, процедура должна занимать в среднем 5 минут, что считается приемлемым.



При «компилировать всё» на БД Oracle, на коробке, продукт бандл, процедура  иногда может занимать ~ 30 минут, что планируется решить.

 

 

На продолжительность процесса компиляции может влиять очень много факторов.

Но, возможно, выявить причины проблемы Вам поможет информация по структуре процесса компиляции. 

 

Процесс компиляции приблизительно выглядит так (значимая часть): 

  1. Происходит поиск всех измененных схем (по сути поиск происходит только в пакетах, которые установлены из SVN, то есть являются «разлоченными»)
  2. Проходит анализ на построение цепочки компиляции. Анализируется каждая схема:
    1. Если схема является новой (не замещённой) - компилируется только пакет, в котором эта схема находится
    2. Если схема является замещённой - компилируется вся цепочка наследования. 

В последнем пункте обычно и кроется проблема. 

 

Ещё вопросы о причинах (ресурсы сервера, размер БД) и способе минимизации времени (компилировать только нужное) обсуждаются в этой теме.

Зверев Александр,

Спасибо, получается чем больше наследований, тем дольше компиляция?

И чем больше пакетов с изменениями.

Используйте производительное железо. Быстрый процессор, достаточное количество оперативной памяти и ssd чем быстрее тем лучше.

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

Заружал пакет, который при загрузке выдал сообщение о том, что не может загрузиться, в логах сказали обращаться за более подробной инфой в конфу, зашел в конфу нажал скомпилировать и выдало ряд ошибок, который не совсем понимаю с чем связаны(скриншот)Изображение удалено.

Нравится

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

Добрый день, Дмитрий!

 

Для решения возникших ошибок вам стоит обратится в техническую поддержу. 

 

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

[Управление конфигурацией] - [Пакет] - [Схема] - [Изменить] - [Проверка кода] выдаёт ошибки:

- "Line is too long."

- "Forgotten 'debugger' statement?"

Было бы неплохо иметь настройку компилятора JavaScript:

- "Line is too long."

  Настройка выдачи сообщения: игнорировать / предупреждение / ошибка

  Максимальная длина строки: 0 (бесконечная) - 1024, 120 (по-умолчанию)

- "Forgotten 'debugger' statement?"

  Настройка выдачи сообщения: игнорировать / предупреждение / ошибка

4 комментария

Я бы сказал - было бы неплохо иметь возможность настроить JsHint встроенный.

Спасибо за предложение, завели идею иметь возможность настроить встроенный JsHint и конкретно эти примеры проверок.

+ одна настройка для отключения проверки сообщения

Expected '{' and instead saw 'return'.

Дамиан, добавил к идее.

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

Приветствую.

Развернул тестовую среду на Windows Server 2012 R2.

При попытке компиляции возникает ошибка

System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified

   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)

   at Terrasoft.Core.Compilation.ProjectBuilder.BuildInternal(String projectFilePath, String tempPath, BuildCommandParameters parameters)

Кто нибудь сталкивался с такой проблемой? Версия 7.14.4

.Net Framework стоит 4.7

Изображение удалено.

 

 

Нравится

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

Обновил Frame до 4.8. Всё заработало

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

Коллеги, добрый день. 

Помогите, пожалуйста, понять проблему. 

После всех проведённых обновлений попытались добавить приложение из маркетплейса и скомпилировать приложение, получили ошибку: 



Access to the path 'AttributeValueSchema.Base.cs' is denied.

Что делаем не так ?

 

Нравится

4 комментария
Лучший ответ

Помогло следующее решение от службы поддержки.

IIS -> Пулы приложений -> Creatio (создал сам) -> Дополнительные параметры -> Удостоверение -> Domain\UserName.

К этому должны быть настроены:

- полные права доступа  пользователя Domain\UserName на каталог c:\inetpub\Creatio\ (созданный каталог сайта);

- запуск сайта и приложения от имени пользователя Domain\UserName.

Это сообщение означает отсутствие доступа к этому файлу на жёстком диске на компьютере, где происходит компиляция. Возможно, получится починить так, как сделали в этом видео?

Зверев Александр,

Данный файл "AttributeValueSchema.Base.cs" при поиске в каталоге "c:\inetpub\CreatioWebSite\" не обнаружен. 

Куда грузятся исходники, см. в теме. В старых версиях было возможно задавать произвольный каталог, возможно, у Вас как раз такая. Либо ещё не выгружали исходные коды в файловую систему и они есть только в БД в SysSchemaSource.

Помогло следующее решение от службы поддержки.

IIS -> Пулы приложений -> Creatio (создал сам) -> Дополнительные параметры -> Удостоверение -> Domain\UserName.

К этому должны быть настроены:

- полные права доступа  пользователя Domain\UserName на каталог c:\inetpub\Creatio\ (созданный каталог сайта);

- запуск сайта и приложения от имени пользователя Domain\UserName.

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