【发布时间】:2014-09-17 20:14:48
【问题描述】:
我有一个托管在共享托管服务器上的网站。目前我正在使用进程内会话状态,但我遇到的问题是每当我更改代码时(主要在App_Code 中注意到),我的会话中断并且用户已注销。我有一些问题:
- 有什么可以帮助我在更改代码时避免丢失会话?
- 如果这是它的正常行为,那么切换到 SQL Server 会话状态如何?
- 我可以在共享主机服务器上配置它吗?步骤是什么?
- 我是否可以使用普通的
Session对象访问会话,还是需要采用通常的数据库连接方式?
我尝试使用aspnet_regsql 命令从本地计算机配置它,并为托管服务器提供了数据库IP。它成功完成,但是当我对web.config 文件进行更改时它没有工作。
这些是我对web.config的更改:
<sessionState
mode="SQLServer"
sqlConnectionString="data source=[DB IP];user id=username;password=password;initial catalog=[db name on production]"
/>
我在这里做错了吗?
【问题讨论】:
-
SQL 可以正常工作,如果您认真地保持会话完好无损(尤其是在共享主机上),它绝对比 in-proc 更受欢迎 - 但请注意它的速度要慢得多,而且您还必须确保您存储在会话中的所有内容都是可序列化的。一旦您接受了这一点,您就可以使用您想要的任何 SQL Server 实例,只要您正确设置了数据库对象。如果您在连接到正常工作的 SQL 会话实例时遇到问题,您需要提供有关问题所在的更多详细信息。
-
您所做的似乎是正确的。您是否能够查看 SQL 中的数据并确认您的会话数据存储在那里?
标签: asp.net sql-server session-state