【问题标题】:WCF - StructureMap - Caching objects for the duration of the request onlyWCF - StructureMap - 仅在请求期间缓存对象
【发布时间】:2010-03-24 19:51:08
【问题描述】:

所以我已经有了一个使用 WCF 服务的 StructureMap 的工作实现(包括自定义实例提供程序、行为等)

当我尝试让每个用户请求仅实例化一次的对象时,我使用 InstanceScope.HttpContext 并抛出,因为上下文是 null

有人有正确的方法吗?

【问题讨论】:

    标签: wcf structuremap ioc-container


    【解决方案1】:

    在 WCF 服务的服务器端?默认情况下,WCF 与 ASP.NET 无关,因此您的所有 HttpContext 等都不存在。

    默认情况下,您的 WCF 服务将在“每次调用”的基础上被调用,例如每个请求都会获得一个全新的、独立的、完全隔离的服务类实例。为什么不把这些东西作为内部字段放入服务类??

    或者您可能想查看blog post,了解如何抽象请求状态并为 ASP.NET(使用 HttpContext.Items)和 WCF 提供示例实现。

    【讨论】:

    • 我今天早上走路去上班时实际上正在考虑它。服务主机将是存储它的最佳位置。我会看看能做些什么。
    • @Maxim:是的,服务主机可能是另一个挂钩的地方。但是请注意,对于所有同时存在的服务类实例,主机只存在一次!它在所有服务实例之间共享 - 这可能是一个好或坏的功能,具体取决于您想要实现的目标。
    猜你喜欢
    • 2012-12-29
    • 1970-01-01
    • 2019-08-08
    • 2011-06-13
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多