【问题标题】:How to move the session state from InProc to SQLServer如何将会话状态从 InProc 移动到 SQLServer
【发布时间】:2017-04-27 12:14:32
【问题描述】:

我目前在我的 .net Web 项目中使用InProc 会话状态模式。我想将它从InProc 移动到SQLServer 会话状态,因为我将使用负载均衡器。我需要遵循哪些步骤?

在我的 C# 代码中,我使用如下会话。

    Session["MyValue"] = "Test" // To set
    string value = Session["MyValue"] //To read

那么我需要对源代码进行哪些更改?使用SQLServer会话状态时不能使用上面相同的代码吗?

【问题讨论】:

  • 完全取决于到目前为止您在使用会话状态时的谨慎程度。如果您放置在会话中的所有内容都是可序列化的,那么更改它应该是微不足道的。 OTOH,如果您一直在会话中存储复杂的、不可序列化的对象,那么您将需要做很多工作来消除/替换这些对象。
  • 你试过谷歌吗?第一个结果来自msdn,并说明如何做:msdn.microsoft.com/en-us/library/ms178586.aspx
  • 切换到 SQL Server 会话状态时,您可以毫无问题地使用相同的代码,只需更改您的 web.config 设置

标签: c# .net session-state inproc sql-session-state


【解决方案1】:

您确实应该仔细阅读已经提供的文章。多年来,他们已经成功地向几个人解释了您的情况。 除非您在会话中存储不可序列化的数据,否则无需更改您的代码。 您还应该验证,您没有在会话状态中存储大量数据,因为 SQL-Server 会话状态 - 虽然比 inproc 更可靠 - 速度较慢。

另一篇文章供您参考: https://support.microsoft.com/en-us/kb/317604

【讨论】:

    【解决方案2】:

    遵循本文档。 https://msdn.microsoft.com/en-us/library/ms178586.aspx

    您需要使用 Aspnet_regsql.exe 工具安装会话状态数据库并在您的 web.config 中进行修改。

    <configuration>
      <system.web>
            <sessionState mode="SQLServer"
                 sqlConnectionString="Integrated Security=SSPI;data 
                 source=SampleSqlServer;" />
      </system.web>
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 2014-08-30
      • 2012-03-18
      • 2017-07-12
      相关资源
      最近更新 更多