Не удается получить объект WebApplicationContext из ContextRegistry.GetContext (): обработчик ресурсов для протокола «web» не определен - PullRequest
0 голосов
/ 04 апреля 2011

Я застрял в настройке моего файла web.config в проекте веб-форм для получения экземпляра WebApplicationContext (в Global.asax) и возможности использовать scope = "application | session | request"

<sectionGroup name="spring">
    <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
    <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>

<spring>
    <context type="Spring.Context.Support.WebApplicationContext, Spring.Web">
        <resource uri="~/Configuration/Spring.xml" />
    </context>
</spring>

<httpHandlers>
    <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
</httpHandlers>

<httpModules>
    <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</httpModules>

Затем я пытаюсь добавить WebApplicationContext к моему объекту Application, чтобы перейти на любую страницу .aspx;

protected void Application_Start(object sender, EventArgs e)
{
    //Exception happens on next line!
    Application.Add("ContainerID", ContextRegistry.GetContext());
}

Исключение, которое я получаю:

"Error creating context 'spring.root': Resource handler for the 'web' protocol is not defined. Spring.NET"

Я потратил некоторое время на поиски, но безуспешно. Я нашел в Spring.NET документацию; «В веб-приложениях Spring предоставляет реализация WebApplicationContext, которая настраивается путем добавления настраиваемого модуля HTTP и HTTP обработчик вашего файла Web.config. См. Раздел «Веб-конфигурация» для получения более подробной информации. «Но это ни в коем случае не происходит.

Пожалуйста, кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

контейнер spring.net не инициализируется на Application_Start.

и, кстати, зачем вам добавлять контейнер в Application хранилище?Для меня это звучит как антипаттерн ...

0 голосов
/ 30 января 2015

Добавьте это в узел конфигурации system.webServer:

<modules runAllManagedModulesForAllRequests="true">
  <add name="Spring" preCondition="integratedMode" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</modules>   

Если вы используете встроенный режим в IIS7

...