将ASP.NET InProc会话状态模式更改为状态服务器或SQL Server状态

时间:2019-05-26 13:03:22

标签: asp.net-mvc session-state web-garden sql-session-state session-state-server

首先,我是Web应用程序编程的新手。我来自桌面应用程序(WinForms和WPF)。 最近,我被分配了一个其他人过去做的项目。该项目是在ASP.NET MVC中完成的,它使用InProc会话状态模式。

现在,我想构建一个网络园艺,即对应用程序池使用多工作进程。我用Google搜索,发现InProc会话不适用于网络园艺,因为应用程序池中的每个工作进程都使用其自己的会话状态。因此,我计划将其切换到另一个会话状态模式,例如State Server或SQL Server。

现在我有一个疑问。除了在Web.config中更改会话状态模式之外:

<configuration>  
  <system.web>      
    <sessionState mode="InProc" timeout="25"></sessionState>  
  </system.web>  
</configuration>

...我需要做一些额外的工作吗?例如重新编程ASP.NET MVC应用程序,配置或其他一些东西以使其正常工作?

下面,我分享了一些有趣的链接:

1 个答案:

答案 0 :(得分:0)

对于Web场,您应将会话保持在StateServer或Sql Server中。  为此,您需要添加以下配置

     <connectionStrings>
           <add name="ConnectionString1" 
           connectionString="Data Source=YourServer;Initial 
           Catalog=SessionDatabase;Integrated Security=True"
           providerName="System.Data.SqlClient" />
    </connectionStrings>



<!--Change your <sessionState mode="InProc" timeout="25"></sessionState>  to this.-->

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