我有一个ASP.net网站和一个SQLServer会话状态模式的会话。我在web.config中声明超时应该是一小时,但它会在10分钟内超时。
<sessionState allowCustomSqlDatabase="true" mode="SQLServer"
sqlConnectionString="objConnState"
timeout="60"/>
我可以在表格中看到会话条目: 读:
值得一提的是,整个事情落后一小时(我认为因为它在程序和默认值中使用getutcdate(),而getutcdate()比我的时间晚一个小时,不知道这是否相关或不
是否有可能在IIS中的某处或站点,服务器和覆盖我的web.config设置的sql之间的任何地方默认超时?
可以使用向导正确设置ASPState表。
<?xml version="1.0"?>
<configuration>
<appSettings>
<some irrelivant app keys
.
.
.
>
</appSettings>
<connectionStrings>
<add name="objConnRemote" connectionString="..."
<add name="objConnLocal" connectionString="..."
<add name="objConnState" connectionString=".."
<add name="objConnTest" connectionString="..."
</connectionStrings>
<system.web>
<sessionState allowCustomSqlDatabase="true" mode="SQLServer"
sqlConnectionString="objConnState"
timeout="60"/>
<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, />
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, />
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, />
<add assembly="System.Security, Version=4.0.0.0, Culture=neutral, />
<add assembly="System.Management, Version=4.0.0.0, Culture=neutral, />
<add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, />
<add assembly="System.Net, Version=4.0.0.0, Culture=neutral, /></assemblies>
</compilation>
<machineKey decryptionKey="somekey,IsolateApps" validationKey="someotherkey,IsolateApps"/>
<pages>
<controls>
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit"/>
</controls>
</pages></system.web>
<system.web.extensions>
<scripting>
<webServices>
<!--was the reason for the java pop up alert on the auto fill -->
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<httpErrors errorMode="Detailed"/>
<asp scriptErrorSentToBrowser="true"/>
<defaultDocument enabled="true">
<!-- this line enables default documents for a directory -->
<files>
<clear/>
<!-- removes the existing default document list -->
<add value="index.aspx"/>
</files>
</defaultDocument>
</system.webServer>
</configuration>
编辑: 我刚发现一些很奇怪的东西。因为我最初很难,所以它并没有神奇地将超时设置为10分钟。相反,它会每隔10分钟以相等的间隔踢我一次 - 每小时6次。如果我在15:01或15:09登录无关紧要,或者如果我有效,或者不是它会清除变量并在15:10将其发送回/ login /每次登录...
AAAND最终编辑: 谢谢大家参与这次讨论。事实证明,我的系统管理员(我上面的那个人)有一个每10分钟运行一次的脚本,用于检查用户是否应该被踢#34;节省资源。显然,脚本没有考虑新的表和数据库,并且当它不应该时也清除它。希望当我们停止/改变脚本它应该工作,到目前为止它的工作。
答案 0 :(得分:0)
SQL Server具有默认连接超时的设置。打开SSMS,连接到您的服务器,(在对象资源管理器树中)右键单击您的服务器,属性。在“高级”页面下的“网络”部分下,查看“远程登录超时”设置。默认值为10(分钟)。尝试使用不同的值,如30或60.
警告:这会为所有用户设置默认超时。当您增加此设置时,服务器将保持连接更长时间(使用更多RAM)。因此,如果此服务器不仅仅是您的Web服务器共享,您可能想要研究如何“扩展”您的应用程序的数据库。