我在一个控制台应用程序中托管了 WCF 服务,该应用程序预计将 24/7 运行并响应来自多个应用程序的请求。如果它连续收到请求,甚至在 4 小时的空闲时间之后,它就会很好地工作。下面给出了为托管服务而编写的代码,
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(abcdService)))
{
host.Open();
Console.ReadLine();
host.Close();
}
}
在 WCF 服务中,我将输出写入控制台。当它抛出超时错误时,我可以看到 WCF 服务中的方法从未收到过请求。
是否需要进行任何设置才能使自托管 WCF 服务即使在几个小时的空闲时间后也能响应简单的调用?
我收到的错误如下,
00:00:59.9989999 后等待回复时请求通道超时。增加传递给 Request 调用的超时值或增加 Binding 上的 SendTimeout 值。分配给此操作的时间可能是较长超时的一部分。---> System.TimeoutException:对 '' 的 HTTP 请求已超过分配的超时时间 00:01:00。分配给此操作的时间可能是较长超时的一部分。---> System.Net.WebException:操作已超时。中止测试执行。
注意:当我重新启动托管 WCF 服务的控制台应用程序时,它再次开始正常工作。