当WCF服务构造函数';s的InstanceContextMode设置为PerSession
本文关键字:InstanceContextMode 设置 PerSession 服务 WCF 构造函数 | 更新日期: 2023-09-27 18:29:34
当ServiceBehaviorAttribute.InstanceContextMode
设置为PerSession
时,如何在WCF服务的构造函数中只运行一次代码?
[ServiceBehavior(
InstanceContextMode = InstanceContextMode.PerSession,
ConcurrencyMode = ConcurrencyMode.Single)]
public class SomeService : ISomeService
{
public SomeService()
{
this.RunThisOnceForAllClients();
}
private void RunThisOnceForAllClients() { }
}
或者,如何使一个方法在WCF服务运行后自动运行,但它对于所有客户端调用仅运行一次?
请帮忙。提前谢谢。
我使用托管Windows服务部署WCF服务。我的代码是C#。框架在.NET 4中。项目是在Visual Stuido 2010 Professional中构建的。该服务由Windows窗体应用程序使用如果你想知道为什么我需要这样做,我需要执行一个Uploader
方法,该方法将把服务的数据库上传到另一个服务,但它会在一定时间内执行,所以我把它放在另一个线程中,只要服务在运行,它就会一直运行
为什么不在windows服务中托管WCF服务之前运行此操作,以便在WCF服务联机时立即做好准备。您可以从正在运行的线程获取一个已完成的事件,然后部署WCF服务。
您需要编写服务行为或端点行为。在这种行为中,在第一次从客户端调用时调用函数,并将变量设置为true,并将其存储在某个永久内存或文件位置。您可能会看到以下关于扩展WCF 的msdn文章
使用静态构造函数?在代码中对该类执行任何操作之前,它将被调用一次。