我使用IIS 8.5配置了Windows 2012R2并启用了新的挂起选项。
根据文档,状态写入磁盘并释放资源。
我有一个强大的SignalR网站,当网站启动时,总会有一个永不退出的线程,跟踪游戏的参数,用户来到网站,玩游戏,状态保存在数据库。
在网站终止之前,它会从数据库中加载所有内容以恢复游戏状态,这样可以正常工作但在网站开始之前需要很长时间(有时长达5分钟)。
现在我配置了suspend选项,它看起来工作正常,站点在几秒钟内启动,但永无止境的线程......已经结束。
可能是罪魁祸首?是否有一个事件在网站进入暂停状态或暂停而不是冷启动时被调用?
答案 0 :(得分:1)
在IIS中运行后台线程不是一个好主意。见http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx/
可能的解决方案是使用Windows服务(我建议TopShelf进行简单的引导)来运行后台操作并通过API与ASP.NET通信。