【发布时间】:2012-02-24 13:27:29
【问题描述】:
我正在构建一个 WCF 服务,它托管在 windows 服务 中。 WCF-Service 由 ASP.Net 应用程序使用代理调用。
using (WcfServiceRef.MonitorClient proxy = new WcfServiceRef.MonitorClient())
{
//WCF Service proxy
proxy.Open();
proxy.DoSomething();
}
此外,我有一个单例类 DataAdapter 像这样在 WCF 服务中使用(大多数情况下,它只是将调用转发到 DataAdapter,以便能够更改实际数据访问容易):
DataAdapter.GetInstance().DoSomething();
我的 DataAdapter 看起来像这样,它保存着应该保持活动状态的 myData:
public static DataAdapter DataAdapterInstance;
private List<CustomObjects> myData;
internal static ServiceAdapter GetInstance()
{
if (DataAdapterInstance == null)
{
DataAdapterInstance = new DataAdapter();
}
return DataAdapterInstance;
}
现在我遇到了麻烦:(我不确定我在这里写的所有内容是否正确)
- “Windows 服务”理论上永远运行(应该如此)
- WCF 服务仅在由我的代理调用/创建时运行(来自 asp.net)
我的 DataAdapter(包含我的所有数据)什么时候“死掉”......所以我在这里问的是实际上没有引用时对象的生命周期是多少。 (我会说它在垃圾收集器运行时收集) - 我认为我的方法不太好,我将不胜感激有关如何存储我的数据的任何建议(最好不使用数据库或外部文件)
感谢您调查我的问题!
【问题讨论】:
标签: c# asp.net service singleton