IIS 6宿主环境中的WCF应用程序生命周期说明

大家好,谢谢你的阅读,

我有一个延迟问题,那就是我的应用程序在最后一次调用后的一段确定的时间后首次调用时需要很长时间才能启动。 Web应用程序是一个WCF服务,我们正在谈论实际处理开始之前约18秒的延迟。 现在,我相信我知道如何减less这个延迟,这不是我的问题(无论如何,这是更多的stackoverflow交易)

我的问题是 ,任何人都可以向我解释,为什么尽pipe我禁用了工作进程closures,并且工作stream程在无所事事的一段时间之后仍然“风”了下来?

为了理解这一点,我需要更多地了解IIS中托pipe的WCF服务的内部结构。 我完全期待有一个直截了当的答案。

谢谢你对任何你可能提供的帮助,DC

如果在工作进程的“回收和性能”选项卡上未选中任何内容,则IIS不应终止进程。 是否有任何事件日志条目相应的过程“风下”的时间? 这听起来像WCF应用程序可能崩溃了。 WCF不会像标准的.NET应用程序一样将事件日志logging到日志中,所以如果你没有编写自己的日志,你可能需要打开WCF跟踪来查看是否是这个问题。

在此期间,您的问题的快速难看的解决scheme可能是在您的WCF服务中创build某种便宜的testing或只读事务,并configuration一个监视应用程序或脚本来每隔X秒轮询一次以使工作进程保持活动状态前这些JIT过。

我相信这个问题与WCF无关,nHibernate排除它的映射是错误的。 我通过编译nHibernate映射文件来解决它,所以nHibernate不必。