【发布时间】:2016-12-09 01:39:17
【问题描述】:
我已经彻底搜索了互联网(大多数链接将我发送到 stackoverflow ;))以尝试提出一个解决方案,如何在 IIS (7.5) 下保持 WCF 服务处于活动状态。
这里的许多回复都建议编写一个应用程序,该应用程序将定期向 WCF 服务发送虚拟请求以使其保持活动状态。
我的问题是: 如果我在 WCF 中创建一个线程,该线程将在首次调用服务时启动(在静态构造函数中),该线程将定期消耗 WCF 本身?
我的意思是例如在 c# 中:
while (true)
{
WebClient client = new WebClient();
string returnString = client.DownloadString("http://...");
Thread.Sleep(1000 * 5);
}
假设“http://...”是提供的 WebMethod 的 URI,例如返回某个整数。
这行得通吗?
基本上,我需要某种在执行某些操作并更新 SQL Server 数据库中的内容的服务器上运行的 Web 服务(不是特别是 WCF,但不是 Windows 服务)。因此,如果所描述的方法不起作用,那么实现这一目标的最佳方法是什么?
【问题讨论】:
-
适合您的方案?绝对不是 WCF。为什么不使用 Win 服务?
-
因为有时我还需要通过 HTTP 向它发送一些数据
-
好的。怎么会互相排斥?您可以拥有 WCF AND Win 服务,两者都使用相同的业务逻辑库等。如果没有,为什么不呢?
-
为什么需要让服务保持活力? IIS 会在需要时自动启动它。