c# - 为什么 ASP.NET 重启 WCF 服务?

标签 c# asp.net .net wcf

我有一个问题。我正在使用 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/

相关文章:

c# - 在我的代码中找不到错误它是一个使用列表存储操作和数字的计算器?

javascript - Web API Post方法不保存数据

.net - 在对象浏览器中找到命名空间,但在引用库中缺失

c# - 如何要求枚举作为强类型参数?

c# - Azure Web应用程序授权: session variables for auth/me

c# - GetExpressCheckoutDetails 在 asp.net 中返回 session 过期(10411 错误)(仅在某些计算机上)

c# - 在 .NET 中打开巨大的 TIF 并将部分复制到新图像

c# - 单击事件未在动态添加的 LinkBut​​ton 上触发

c# - 在 C# 中使用 Semaphore 创建单实例应用程序

c# - 如何将多个数据表导出到单个 Excel 文件中的多个工作表