我一直忙于在web表单项目下配置我的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页面上进行cosume;
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"
我花了一些时间在Google上搜索,但没有成功。我在Spring.NET文档中找到了; “在Spring提供的Web应用程序中 WebApplicationContext实现,通过添加自定义HTTP模块和HTTP进行配置 Web.config文件的处理程序。有关详细信息,请参阅“Web配置”一节。“但它绝不会发生。
拜托,有人可以帮助我吗?
答案 0 :(得分:1)
未在Application_Start
初始化spring.net容器。
和btw,为什么要在Application
bucker中添加容器?这听起来像是反模式......
答案 1 :(得分:0)
将其添加到system.webServer配置节点:
<modules runAllManagedModulesForAllRequests="true">
<add name="Spring" preCondition="integratedMode" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</modules>
如果在IIS7中使用integratedMode