为什么ASP.NET重新启动WCF服务?

时间:2014-04-18 07:19:06

标签: c# asp.net .net wcf

我有一个问题。我正在使用WCF服务开发ASP.NET应用程序。有一个自定义会话管理器,它基于SessionID。我将会话ID保存在静态类中,该类存储在使用WCF服务的程序集中。

有时,WCF服务会无意中重新启动(或重新创建?),会话管理器会清除所有已打开会话的ID。这个项目是不可接受的。

我了解InstanceContextMode / ConcurrencyMode属性并将它们设置为" Single",但它没有效果:WCF服务重新启动所有相同。

如何禁用WCF服务重启?

1 个答案:

答案 0 :(得分:1)

IIS可能会出于各种原因回收托管您的应用程序的应用程序池。这意味着将重新启动托管您的应用程序的进程,并且将丢失保存在静态字段或类中的所有数据。

为了解决这个问题,我建议将数据保存在数据库或其他一些持久存储中而不是内存中。如果频繁使用此数据,您可以考虑在此持久存储上创建内存缓存。