Spring.Net выдает исключение: запрос недоступен в этом контексте

Я новичок в Spring, поэтому некоторые решения для меня непонятны
Это приложение ASP.NET MVC4 / .NET 4.5

Это текст исключения:

An exception of type 'System.Configuration.ConfigurationErrorsException' occurred in Spring.Core.dll but was not handled in user code
Additional information: Error creating context 'spring.root': Request is not available in this context

Ошибка возникает в пользовательском классе менеджера контекста:

    public static IApplicationContext GetApplicationContext()
    {
        if (null == appContext)
        {
            lock (typeof(ContextManager))
            {
                if (null == appContext)
                {
                    appContext = ContextRegistry.GetContext(); <-- throws there
                }
            }
        }
        return appContext;
    }

Многие решения, которые я искал в Google, говорят мне переключить режим IIS на интегрированный режим. В этом режиме приложение работает нормально, но мне нужно отладить приложение с помощью IISExpress. И нет никаких идей

Вот моя трассировка стека для этого исключения:

at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult , Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
в System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
в System.Web.HttpContext.GetSection(String sectionName)
в System.Web.Configuration.HttpConfigurationSystem.GetSection(String sectionName)
в System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigS ystem.GetSection(String configKey)
в System.Configuration.ConfigurationManager.GetSection(String sectionName)
в Spring.Util.ConfigurationUtils.GetSection(String sectionName)
в Spring.Context.Support. ContextRegistry.InitializeContextIfNeeded()
в Spring.Context.Support.ContextRegistry.GetContext()
в HealthDec.Cms.Model.ContextManager.GetApplicationContext() в ~~\Model\ContextManager.cs:строка 46< br/> в HealthDec.Cms.Model.ContextManager.GetObject(имя строки) в ~~\Model\ContextManager.cs:line 64
в HealthDec.Cms.WebApp.MvcApplication.Init() в ~~\Applications \WebApp\Global.asax.cs:строка 156
в System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, контекст HttpContext, обработчики MethodInfo[])


person dotFive    schedule 07.08.2014    source источник
comment
Скорее всего, вы пытаетесь получить доступ к spring.net Context в начале жизненного цикла приложения (он различается между классическим и интегрированным режимами). Если ваше приложение является производным от SpringMvcApplication, переопределите ConfigureApplicationContext, чтобы получить доступ к контексту.   -  person Andreas    schedule 19.08.2014
comment
Вы нашли решение этой проблемы? Я застрял в рассоле: - Вынужден использовать Integrated Pipeline Mode для поддержки OWIN - Однако режим не загружает Request на Application_Start, где я загружаю объекты Spring. Примечание. Мне нужно выполнить бизнес-логику при запуске приложения.   -  person Exegesis    schedule 06.11.2020
comment
@Exegesis не уверен, почему это должен быть какой-то объект запроса в части инициализации приложения? Честно говоря, я не помню контекст задачи возрастом ~ 6 лет, но единственное, что сработало для меня, - это ответ, который я уже опубликовал (так что на самом деле это решение этой проблемы)   -  person dotFive    schedule 07.11.2020


Ответы (1)


Обозреватель решений -> Выбрать проект MVC -> вкладка "Свойства" -> Режим управляемого конвейера -> Интегрированный ‹--> Классический

person dotFive    schedule 08.08.2014
comment
@AMomchilov: в моем случае это было единственное решение. Буду рад, если вы предоставите что-то лучше - person dotFive; 27.05.2016
comment
Сам пока ищу :( - person Alexander; 27.05.2016