gpt4 book ai didi

ASP.NET session 状态 InProc

转载 作者:行者123 更新时间:2023-12-02 16:36:14 27 4
gpt4 key购买 nike

为什么在 Visual Studio 2012 中创建 ASP.NET 4.5 Web 窗体项目时,web.config 中默认包含以下内容:

...
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Project.Web-20130625130806;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Project.Web-20130625130806.mdf" />
</connectionStrings>
...
<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" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
...

(我的问题不是关于 LocalDb 是什么或为什么有示例连接字符串)

上面写着here InProc 表示 session 状态存储在内存中。那么为什么在声明 InProc 后还需要指定连接字符串呢?

最佳答案

<ConnectionStrings> <SessionState> 上方显示的部分部分与 sessionState 没有任何联系。 ConnectionStrings 部分用于其他目的,例如当您拥有自己的数据库并且需要连接到它时,此部分仅包含用于成员(member)资格、个人资料等的数据库的详细信息。

<sessionState >元素有自己的设置,用于指定名为:sqlConnectionString 的连接字符串。如下所示:

<sessionState mode="Off|InProc|StateServer|SQLServer"
cookieless="true|false"
timeout="number of minutes"
stateConnectionString="tcpip=server:port"
sqlConnectionString="sql connection string"
stateNetworkTimeout="number of seconds"/>

现在,当您使用 mode="InProc"时,无需设置 sqlConnectionString 设置。即使设置了,也不会被使用,因为模式是“InProc”而不是“SQLServer”

关于ASP.NET session 状态 InProc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17705238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com