Application_Start 中的 Windsor PerWebRequest 解析
我将 HttpContextBase 注入到缓存类中。 HttpContextBase 注册为 PerWebRequest。我在每个 Web 请求上与缓存类进行交互,效果很好,但我还需要在应用程序启动时初始化缓存。
我知道 PerWebRequest 在 Application_Start 中不起作用:
castle PerRequestLifestyle 无法识别
最好的方法是什么在我的情况下解决这个问题?
I am injecting HttpContextBase into a caching class. HttpContextBase is registered as PerWebRequest. I interact with the caching class on each web request and this works fine, but I also need to initialise the cache at application start.
I understand that PerWebRequest does not work in Application_Start though:
castle PerRequestLifestyle not recognize
What is the best way to resolve this in my situation?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不要使用依赖于 Web 请求之外的每个 Web 请求的内容。
如果您需要依赖于注册为 PWR 的类,我建议您为该服务获取具有不同生活方式的另一个组件,并在 Application_Start 中使用它,并在您处于某个环境时使用
IHandlerSelector
返回 PWR 一个Web 请求,否则另一个请求Not use stuff that depends on per-web-request stuff outside of web request.
If you need to depend on a class you registered as PWR I'd suggest getting another component for that service with different lifestyle and using it in Application_Start and using
IHandlerSelector
to return PWR one when you're within a web request, and the other one otherwise尝试使用混合网络请求/瞬态生活方式。
Try using an hybrid webrequest/transient lifestyle.
为了在容器启动时预热缓存,我通常使用可启动设施。
以下是如何使用它的示例:
http://blog.bittercoder.com/PermaLink, guid,a621ddda-acb5-4afd-84ff-faafb96a2fa1.aspx
To warmup caches when the container starts I usually use the Startable Facility.
Here is an example on how to use it:
http://blog.bittercoder.com/PermaLink,guid,a621ddda-acb5-4afd-84ff-faafb96a2fa1.aspx