Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带计时器的自托管WCF服务_C#_.net_Wcf - Fatal编程技术网

C# 带计时器的自托管WCF服务

C# 带计时器的自托管WCF服务,c#,.net,wcf,C#,.net,Wcf,我下面的示例创建自托管WCF服务。理想情况下,我希望服务和定时器连接,每半小时检查一次数据库中的某个值是否更新,如果是,服务将执行一些任务,否则将每半小时检查一次。我在网上读到,在IIS托管的WCF中使用计时器不是一个好主意,在自托管的WCF服务中使用它怎么样?有什么例子吗 谢谢,我认为一个更好的选择是创建一个简单的控制台应用程序,如果值被更新,它将执行您的任务,然后在Windows中创建一个计划任务,每半小时运行一次此控制台应用程序。这样,您就可以让Windows管理计时部分,您只需编写代码检

我下面的示例创建自托管WCF服务。理想情况下,我希望服务和定时器连接,每半小时检查一次数据库中的某个值是否更新,如果是,服务将执行一些任务,否则将每半小时检查一次。我在网上读到,在IIS托管的WCF中使用计时器不是一个好主意,在自托管的WCF服务中使用它怎么样?有什么例子吗


谢谢,

我认为一个更好的选择是创建一个简单的控制台应用程序,如果值被更新,它将执行您的任务,然后在Windows中创建一个计划任务,每半小时运行一次此控制台应用程序。这样,您就可以让Windows管理计时部分,您只需编写代码检查数据库,并在必要时进行更新

不确定正在运行的Windows版本,但在上,您可以从控制面板访问计划任务


我认为更好的选择是创建一个简单的控制台应用程序,如果值被更新,它将执行您的任务,然后在Windows中创建一个计划任务,每半小时运行一次此控制台应用程序。这样,您就可以让Windows管理计时部分,您只需编写代码检查数据库,并在必要时进行更新

不确定正在运行的Windows版本,但在上,您可以从控制面板访问计划任务


IIS托管WCF服务中的计时器“不是一个好主意”的原因是IIS服务的生命周期与自托管服务的生命周期大不相同。有关详细信息,请参见此


基本上,如果在超时期间没有人连接到WCF服务,则WCF服务在IIS内托管时可以“关闭”。如果您需要像您描述的那样进行定期维护,您将需要使用自托管服务,并让该服务在其
OnStart()
调用中启动计时器,每半小时启动一次。

IIS托管WCF服务中的计时器“不是一个好主意”IIS服务的生存期与自托管服务的生存期大不相同。有关详细信息,请参见此

基本上,如果在超时期间没有人连接到WCF服务,则WCF服务在IIS内托管时可以“关闭”。如果您需要像您描述的那样进行定期维护,您将需要使用自托管服务,并让该服务启动一个计时器,在它的
OnStart()
调用中每半小时启动一次