Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
自托管WCF服务在空闲数小时后没有响应_Wcf_Visual Studio 2012_Self Hosting - Fatal编程技术网

自托管WCF服务在空闲数小时后没有响应

自托管WCF服务在空闲数小时后没有响应,wcf,visual-studio-2012,self-hosting,Wcf,Visual Studio 2012,Self Hosting,我在一个控制台应用程序中托管了WCF服务,该应用程序预计将全天候运行,并响应多个应用程序的请求。如果它连续收到请求,甚至在空闲4小时后收到请求,它的工作效果非常好。下面给出了为托管服务而编写的代码 static void Main(string[] args) { using (ServiceHost host = new ServiceHost(typeof(abcdService))) { host.Open();

我在一个控制台应用程序中托管了WCF服务,该应用程序预计将全天候运行,并响应多个应用程序的请求。如果它连续收到请求,甚至在空闲4小时后收到请求,它的工作效果非常好。下面给出了为托管服务而编写的代码

    static void Main(string[] args)
    {
        using (ServiceHost host = new ServiceHost(typeof(abcdService)))
        {
            host.Open();
            Console.ReadLine();
            host.Close();
        }
    }
在WCF服务中,我将输出写入控制台。当它抛出超时错误时,我可以看到WCF服务中的方法从未收到请求

我是否需要进行任何设置,使自托管WCF服务即使在几个小时的空闲时间后也能响应简单的呼叫

我收到的错误如下所示

    static void Main(string[] args)
    {
        using (ServiceHost host = new ServiceHost(typeof(abcdService)))
        {
            host.Open();
            Console.ReadLine();
            host.Close();
        }
    }
请求通道在00:00:59.999999之后等待答复时超时。增加传递给请求调用的超时值或增加绑定上的SendTimeout值。分配给此操作的时间可能是较长超时的一部分。-->System.TimeoutException:对“”的HTTP请求已超过分配的超时00:01:00。分配给此操作的时间可能是较长超时的一部分。-->System.Net.WebException:操作已超时。正在中止测试执行


注意:当我重新启动承载WCF服务的控制台应用程序时,它会再次正常工作。

您的请求可能在处理之前在服务器上排队,然后超时

1) 试试你的WCF服务

2) 尝试使用以下命令删除界面中的会话

[ServiceContract(Namespace="namespace", SessionMode=SessionMode.NotAllowed)]
ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
合同类实现接口

[ServiceContract(Namespace="namespace", SessionMode=SessionMode.NotAllowed)]
ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]

您应该能够启用跟踪,以准确地查看发生了什么。

显示配置、实现、客户端代码、服务合同我对自托管服务也有同样的问题。在正常使用和重负载测试期间,它工作正常,但有时在夜间-当没有人使用它时,它会以某种方式崩溃,我无法再从我的客户端应用程序/浏览器访问它。你找到问题的原因了吗?还没有。但我们正在做一个变通办法,以减少问题的发生。基本上,我们每天午夜通过windows调度程序重新启动控制台应用程序(.exe)。这减少了碰撞次数。