Вопрос

При открытии конфигурации через "Управление конфигурацией" выходит ошибка. Через DEV открывается.

Добрый день! 

Пытаюсь настроить CRM локально для разработок. IIS развернул, сайт поднял. Выполнил (подступившись через DEV) генерацию исходного кода, затем компиляцию - оба процесса завершились без ошибок. Надеялся что проблема исчезнет. Но, нет...

При попытке открыть конфигурацию штатным способом открывается страница с ошибкой:

Exception Message: Данный ключ отсутствует в словаре.
Exception Type: System.Collections.Generic.KeyNotFoundException
Exception Source: mscorlib

Exception Stack Trace:
   в System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.CreateItemTabHeader(Dictionary`2 node, Boolean isSysModuleFolder)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.BuildWorkspaces(Dictionary`2 node, TabHeaderCollection tabHeaders)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.BuildWorkspaces(Dictionary`2 node, TabHeaderCollection tabHeaders)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.InitScriptTaskExecute(ProcessExecutingContext context)
   в Terrasoft.Core.Process.ProcessScriptTask.InternalExecute(ProcessExecutingContext context)
   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
   в Terrasoft.Core.Process.ProcessScriptTask.Execute(ProcessExecutingContext context, Func`2 internalExecute)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_UIv2_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_MarketingCampaign_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.OnExecuted(Object sender, ProcessActivityAfterEventArgs e)
   в Terrasoft.Core.Process.ProcessFlowElement.OnExecuted(ProcessActivityAfterEventArgs e)
   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_UIv2_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_MarketingCampaign_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Base_Entity_TerrasoftEventsProcess`1.ThrowEvent(ProcessExecutingContext context, String message)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_MarketingCampaign_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.OnExecuted(Object sender, ProcessActivityAfterEventArgs e)
   в Terrasoft.Core.Process.ProcessFlowElement.OnExecuted(ProcessActivityAfterEventArgs e)
   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
   в Terrasoft.Core.Process.ProcessScriptTask.Execute(ProcessExecutingContext context, Func`2 internalExecute)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_MarketingCampaign_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.OnExecuted(Object sender, ProcessActivityAfterEventArgs e)
   в Terrasoft.Core.Process.ProcessFlowElement.OnExecuted(ProcessActivityAfterEventArgs e)
   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_MarketingCampaign_Entity_TerrasoftEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
   в Terrasoft.WebApp.MainPage_Case_Entity_TerrasoftEventsProcess`1.ThrowEvent(ProcessExecutingContext context, String message)
   в Terrasoft.WebApp.MainPageEventsProcess`1.ThrowEvent(ProcessExecutingContext context, String message)
   в Terrasoft.UI.WebControls.PageSchemaUserControl.ThrowEvent(String message)
   в Terrasoft.UI.WebControls.Controls.PageContainer.LoadFromAssembly()
   в Terrasoft.UI.WebControls.Controls.PageContainer.LoadUserControl()
   в Terrasoft.UI.WebControls.Controls.PageContainer.OnInit(EventArgs e)
   в System.Web.UI.Control.InitRecursive(Control namingContainer)
   в System.Web.UI.Control.InitRecursive(Control namingContainer)
   в System.Web.UI.Control.InitRecursive(Control namingContainer)
   в System.Web.UI.Control.InitRecursive(Control namingContainer)
   в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

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

Нравится

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

Интересно то, что после перезапуска пула и приложения при входе на платформу открывается окно конфигурации с сообщением "Сборка конфигурации "Default" не инициализирована". Хотя непосредственно до перезапуска пула и приложения я выполнял генерацию и компиляцию. Последую совету приведенному в этом обсуждении - https://community.terrasoft.ru/questions/sborka-konfiguracii-default-ne-inicializirovana. Выполненные действия не решили проблему. Ошибка так и возникает.

Руслан Хасанов,

Касаемо ошибки, скопируйте sessionId и найдите его в папке логов, там будет подробное описание ошибки, где сразу все станет понятно)

На самом деле в логах я нашел то же самое что и было выведено на страницу:

2018-12-20 15:54:08
Exception Message: Данный ключ отсутствует в словаре.
Exception Type: System.Collections.Generic.KeyNotFoundException
Exception Source: mscorlib

Есть еще одна ошибка, которая возникает ранее, но я не уверен что она связана с той которую я вижу на странице (так как возникла она на 15 минут раньше). Вот предыдущая ошибка:

2018-12-20 15:39:07,732 [BPMonlineQuartzScheduler_Worker-1] ERROR IIS APPPOOL\BPMdevelopment Terrasoft.Core.Scheduler.RunAppJob RunJobExecutor - JobFail [className:Terrasoft.Configuration.RemindingJob, Terrasoft.Configuration, Version=7.12.4.924, Culture=neutral, PublicKeyToken=null, Exception:Terrasoft.Core.InstanceActivationException: Ошибка создания экземпляра класса "Terrasoft.Core.IJobExecutor" ---> System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: type
   в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   в System.Activator.CreateInstance(Type type, Object[] args)
   в Terrasoft.Core.Factories.ClassFactory.GetInstance[T](String fullClassName, ConstructorArgument[] constructorArguments)
   --- Конец трассировки внутреннего стека исключений ---
   в Terrasoft.Core.Factories.ClassFactory.GetInstance[T](String fullClassName, ConstructorArgument[] constructorArguments)
   в Terrasoft.Core.Factories.ClassFactory.ForceGet[T](String fullClassName, ConstructorArgument[] constructorArguments)
   в Terrasoft.Core.Scheduler.RunAppJob.RunJobExecutor(UserConnection userConnection, String className, JobDataMap dataMap, Dictionary`2 predefinedEntries)]]

Хотя в последней строчке предыдущей ошибки в параметре тоже упоминается словарь -Terrasoft.Core.Scheduler.RunAppJob.RunJobExecutor(UserConnection userConnection, String className, JobDataMap dataMap, Dictionary`2 predefinedEntries).

Я в тупике. В чем проблема понять не могу. Кто нибудь сталкивался с подобным?

Проблема решается перезапуском сервера и очисткой redis'а с помощью команды flushall (подойдет если на сервере запущено одно приложение), а лучше flashdb (для конкретной базы, не забудьте предварительно выбрать базу). Полный перечень команд приведен здесь - https://redis.io/commands. Спасибо команде поддержки Террасофт за оказанную помощь.

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