【问题标题】:How can I store session in SQL server in MVC3如何在 MVC3 的 SQL 服务器中存储会话
【发布时间】:2012-05-25 08:56:40
【问题描述】:

我想在 ASP.NEt MVC3 中的 SQL Server 中存储会话,因为我想在两个应用程序之间共享会话和一些数据。我怎样才能做到这一点。

【问题讨论】:

标签: asp.net-mvc-3


【解决方案1】:

通过在您的 web.config 中设置 <sessionState>

<sessionState 
    mode="SQLServer"
    sqlConnectionString="data source=SQLServerName;user id=<username>;password=<strongpassword>"
/>

这假设您首先使用aspnet_regsql.exe 实用程序在目标数据库服务器上创建了ASPState 数据库:

aspnet_regsql.exe -S SQLServerName -E -ssadd -sstype p

确保从正确的 .NET 框架目录运行此实用程序。例如,如果您使用的是 .NET 4.0,则为 c:\Windows\Microsoft.NET\Framework\v4.0.30319\

在 SQL 服务器上创建数据库后,您可以分配一个用户帐户来访问它,您应该在连接字符串中指定该用户帐户。

【讨论】:

  • 如果我使用“Microsoft SQL Server Compact Data Provider 4.0”和实体框架,那么我将如何做......??
  • ASP.NET Session SQL 存储与实体框架无关。它使用存储过程来更新数据库。我不确定您是否可以将 SQL Server Compact 用于 ASP.NET 会话存储。
  • @DarinDimitrov +1 这是一个非常慷慨的答案 - 我不禁认为这个问题值得Stackoverflow is not your personal research assistant
  • 在SQL Server Compact中,只有通过VS2010连接才能访问数据库,然后只能看到数据库。那么如何为此使用aspnet_regsql.exe。对不起,如果我听起来很愚蠢,因为我是 MVC3 和实体框架的新手。
  • 这就是我在之前的评论中所说的。我不确定aspnet_regsql.exe 是否支持 SQL Server Compact 以实现会话状态持久性。
【解决方案2】:

如果您使用asp.net mvc5 并将模型对象存储到会话中,那么您需要将该模型设置为Serializable,如`

所示
[Serializable]
public class MyModel
{

它在 ajax 调用中很重要。并发送解释到 sql server

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多