【问题标题】:WCF Ria DomainService - Initialize WebService on StartUpWCF Ria DomainService - 在启动时初始化 WebService
【发布时间】:2011-05-14 15:39:23
【问题描述】:

目前,我的 DomainService 确实会在每次客户端连接到他时执行资源的初始化。每个客户端都应该访问该资源的同一个实例。 我想在 WebService 的启动时初始化这个资源。是否有机会使用 WCF Ria Services 做到这一点?

编辑: 好吧,不提了。我想将它用于全局 DbContext 对象。无论如何,这不是一个好主意,因为 HttpApplication 将管理多个线程,这些线程将同时访问 DbContext。我将我的实现更改为“每个线程”,分别是“每个 HttpContext”,方法。无论如何谢谢。

【问题讨论】:

    标签: wcf ria wcf-ria-services domainservices


    【解决方案1】:

    您可以定义一个包含该资源的静态属性的类。然后,您可以在 DomainService 中访问该属性。只有在第一次访问时才会对其进行初始化。

    例子:

    public class ResManager {
        public static MyObject {...}
    }
    

    在域服务中:

    public IQueryable<SomeClass> GetSomeObjects()
    {
        // you can access it here and it will not be initialized 
        // every time the DomainService is called
        MyObject obj = ResManager.MyObject;
        return new List<SomeClass>().AsQueryable();
    }
    

    如果您想在服务启动时对其进行初始化,那么您应该可以在 Global 类中执行此操作。

    【讨论】:

    • 我用静态 DbContext 对象尝试了这个。现在我收到加载错误:“DbContext 已被处理”。我检查了对 DbContext 构造函数和析构函数的调用。在应用程序关闭之前不会调用最后一个。这是怎么回事?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多