如何使用“InProc”sessionState将MVC4应用程序转换为Azure

时间:2012-10-06 09:00:12

标签: azure asp.net-mvc-4 asp.net-4.5 session-state

我在MVC4中使用的应用程序直到现在才托管在单个服务器上。会议的处理方式如下:

<sessionState mode="InProc" customProvider="DefaultSessionProvider">
  <providers>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>

现在,我想将此应用程序移植到Azure,当然,还要支持多个实例。我阅读了很多博客,我可以找到使用AppFabric,AzureStorage,SQL Azure的解决方案,你必须手动删除会话......等等。

是否有解决方案使应用程序使用SQL Azure存储其会话而无需手动清理会话?对我来说,似乎很奇怪,会话似乎是Azure上的一个重要主题。

我看到有可能使用通用“默认配置文件提供商” http://www.hanselman.com/blog/IntroducingSystemWebProvidersASPNETUniversalProvidersForSessionMembershipRolesAndUserProfileOnSQLCompactAndSQLAzure.aspx

据我所知,我们只需要做一个 Install-Package system.web.Providers

然后添加:

  <sessionstate mode="Custom" customprovider="DefaultSessionProvider">
        <providers>
                      <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider"  connectionstringname="DefaultConnection" applicationname="/">
         </add></providers>
    </sessionstate>

这仍然是Visual Studio 2012 + MVC4 + .Net 4.5中的方法吗?

非常感谢您的回复。

1 个答案:

答案 0 :(得分:0)

我们在应用中使用通用提供商。它是MVC4并托管在Azure上。它似乎仍然是处理保存会话状态的最佳方式,因此可以跨角色实例等访问它