【发布时间】:2012-03-30 06:08:58
【问题描述】:
当ServiceBehaviorAttribute.InstanceContextMode 设置为PerSession 时,如何在 WCF 服务的构造函数中只运行一次代码?
[ServiceBehavior(
InstanceContextMode = InstanceContextMode.PerSession,
ConcurrencyMode = ConcurrencyMode.Single)]
public class SomeService : ISomeService
{
public SomeService()
{
this.RunThisOnceForAllClients();
}
private void RunThisOnceForAllClients() { }
}
或者,如何让一个方法在 WCF 服务运行后自动运行,但它对于所有客户端调用只会运行一次?
请帮忙。提前致谢。
我使用Managed Windows Service 部署我的 WCF 服务。我的代码在 C# 中。框架在 .NET 4 中。项目在 Visual Stuido 2010 Professional 中构建。该服务由 Windows 窗体应用程序使用。 如果你想知道为什么我需要这样做,我需要执行一个 Uploader 方法,该方法会将服务的数据库上传到另一个服务,但它会是在特定时间执行,所以我把它放在另一个线程中,只要服务正在运行,它就会一直运行。
【问题讨论】: