1

到目前为止,我在 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 的方式吗?

非常感谢您的回复。

4

1 回答 1

0

We use the Universal provider in our app. It is MVC4 and hosted on Azure. It still seems like the best way to handle saving session state so it is accessible across role instance etc

于 2012-10-06T12:00:58.543 回答