我有一个问题。我正在使用 WCF 服务开发 ASP.NET 应用程序。有一个基于 SessionID 的自定义 session 管理器。我将 session ID 保存在静态类中,它存储在 WCF 服务的程序集中。
有时,WCF 服务会意外重启(或重新创建?)并且 session 管理器会清除已打开 session 的所有 ID。这在这个项目中是 Not Acceptable 。
我阅读了有关 InstanceContextMode/ConcurrencyMode 属性的信息并将它们设置为“Single”,但它没有任何效果:WCF 服务仍然重新启动。
如何禁用 WCF 服务重启?
最佳答案
IIS 可能出于多种原因回收托管您的应用程序的应用程序池。这意味着托管您的应用程序的进程将重新启动,并且所有保存在静态字段或类中的数据都将丢失。
为了解决这个问题,我建议将您的数据保存在数据库或其他一些持久存储中,而不是内存中。如果此数据的使用非常频繁,您可以考虑在此持久性存储之上创建内存缓存。
关于c# - 为什么 ASP.NET 重启 WCF 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23149338/