我将开发计算机上的 session 从 InProc 更改为 SQL Server。我这样做的原因之一是,如果应用程序池回收,我可以在重新启动时再次使用 session 。当然,SQL session 状态的缺点是性能(至少与 InProc 相比)。
如果我迁移到 Azure,我是否 1) 仍然需要担心应用程序池回收,2) 仍然认为 SQL session 是实现这一目标的最佳方法,3) Azure 是否有更好的选择。
谢谢。
最佳答案
1)仍然需要担心应用程序池回收 - 是的。但您可以配置回收间隔。我认为默认情况下 IIS 每 22 小时回收一次应用程序池
2) 仍然认为 SQL session 是最好的方法 - 是的。不(看下一个问题)
3) Azure 有更好的选择吗? - 视情况而定,但您可以考虑使用 Windows Azure AppFabric 缓存来获取 session 状态。
看一下: http://www.nuget.org/List/Packages/System.Web.Providers适用于 SQL Azure 提供商。 和 http://msdn.microsoft.com/en-us/gg457897用于使用 Azure Appfabric 缓存作为 session 状态。
编辑: 考虑limits for Azure AppFabric Cache ,我已经确认的是,每个 Azure 实例始终有一个用于 Azure AppFabric 缓存的连接。
关于asp.net - azure session 和应用程序池回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8060354/