azure会话和应用程序池回收

时间:2011-11-09 04:30:10

标签: asp.net azure

我将我的开发机器上的会话从InProc更改为SQL Server。我这样做的原因之一是,如果应用程序池将循环使用,我将在重新启动时再次使用该会话。当然,SQL会话状态的缺点是性能(至少与InProc相比)。

如果我转移到Azure,我是否仍然需要担心应用程序池回收,2)仍然认为SQL会话是最好的方法,并且3)Azure有更好的选择。

感谢。

2 个答案:

答案 0 :(得分:3)

1)仍然需要担心app pool的回收     - 是的但您可以配置循环间隔。默认情况下,我认为IIS每22小时回收应用程序池

2)仍然认为SQL会话是最好的方法     - 是的没有(看下一个问题)

3)Azure有更好的选择吗?     - 取决于,但您可以考虑将Windows Azure AppFabric Cache用于会话状态。

看看: http://www.nuget.org/List/Packages/System.Web.Providers用于SQL Azure的提供程序。 和 {Azure}将Azure Appfabric Cache用作会话状态。

修改 考虑http://msdn.microsoft.com/en-us/gg457897,我确认的是每个Azure实例都有一个Azure AppFabric Cache连接。

答案 1 :(得分:2)

Astaykov的回答很好。此外,请注意Windows Azure使用无亲和力的负载平衡,这意味着进程内真的不是一个选项。 (我可能在一台服务器上有一个会话,但是当我加载下一页时,我可能会登陆没有该会话的其他服务器。)你真的需要将会话存储在所有服务器共享的地方。 SQL或AF Cache都是不错的选择。