在IIS下保持WCF服务活动

kam*_*lkp 6 c# wcf iis-7.5

我已经彻底搜索了互联网(大多数链接发送给我stackoverflow;))试图找到一个解决方案如何在IIS(7.5)下保持WCF服务活着.

这里的许多响应都建议编写一个应用程序,它会定期向WCF服务发送虚拟请求,以使其保持活动状态.

我的问题是:如果我在WCF中创建一个线程,该线程将在首次调用服务(在静态构造函数中)时启动,该服务将定期使用WCF本身?

我的意思是例如在c#中:

while (true)
{
     WebClient client = new WebClient();
     string returnString = client.DownloadString("http://...");
     Thread.Sleep(1000 * 5);
}
Run Code Online (Sandbox Code Playgroud)

假设"http:// ..."是提供的WebMethod的URI,例如返回一些整数.

那会有用吗?

基本上我需要一种在服务器上运行的某种Web服务(不是特别是WCF而不是Windows服务),该服务器执行某些操作并更新SQL Server数据库中的某些内容.因此,如果描述的方法不起作用,那么实现这一目标的最佳方法是什么?

Man*_*ain 9

转到IIS - >应用程序池(或创建新的) - >高级设置并设置常规时间间隔= 0

在此输入图像描述

请参阅相关的线程在这里.


NDJ*_*NDJ 5

AppFabric允许您创建可以自动启动和长期生存的wcf服务 - 这可能值得作为托管选项签出(它只是IIS的插件)

自动开启


And*_*erg 2

我建议您创建一个调用网络服务的小程序(控制台应用程序)。该程序应将 Web 服务的 url 作为参数。然后创建一个运行该程序的 Windows 计划任务。通过这种方式,与您正在查询的嵌入式方法相比,您拥有很大的灵活性,因为该程序只是 Web 服务的另一个客户端。