WCF服务由IIS托管,spring.net scope="request"
我想在 xml 配置中启用 scope="request"
属性:
<object id="IDataAccess" type="Dal.DataAccess, Dal" scope="request">
我的 WCF 服务托管在 IIS 上,我使用 RouteTable
和 ServiceHostFactory
创建我的服务:
static void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("url", serviceHostFactory, typeof(MyService)));
}
我在 web.config
中添加了 WebContextHandler
以启用范围 request
和 session
如此处所述 http://www.springframework.net/doc-latest/reference/html/web .htm(第 22.3.1 节)
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
</sectionGroup>
和 httpModules
事情:
<system.web>
<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>
</system.web>
因为我使用的是 Windows 7,框架 Net 4.0,所以我还添加了:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</modules>
</system.webServer>
我做了所有这些。它不起作用,我仍然有:
Resource handler for the 'web' protocol is not defined.
当它调用时:
SpringContext = (IApplicationContext)ConfigurationManager.GetSection("spring/context");
我现在不知道该做什么,Spring.net 社区的人可以帮助我吗?看起来我并没有尝试做一些棘手或黑客的事情。在 IIS 中托管 WCF 服务是一种常见模式。
编辑:
我
<add verb="*" path="*" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
按照评论中的建议进行了尝试,但它不起作用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我查看了 spring 源代码中的机器人,如果我
在获取 ContextConfiguration 之前添加我的
Application_Start
方法,它就会完成这项工作。我不知道为什么。我认为这是当前WebSupportModule
中的一个错误。这很奇怪,因为这是在
WebSupportModule
的静态构造函数中调用的。我尝试为 Spring 启用日志记录,但日志文件已创建,但保持为空:/它可以帮助我更多地理解。I looked a bot at the spring source code and if I add
in my
Application_Start
method, before getting the ContextConfiguration, it does the job. I have no idea why. I think it is a bug in the currentWebSupportModule
.It is very strange because this is called in the static constructor of
WebSupportModule
. I tried to enable logging for Spring, but the log file is created, but stay empty :/ it could have helped me a bit more to understand.