Asp.net网站断开连接
本文关键字:连接 断开 网站 net Asp | 更新日期: 2023-09-27 18:24:47
我想问你这个问题,因为我有点受不了。
我想知道为什么当我通过登录表单连接时,当我在默认页面上,在保持连接1小时后,它会断开连接并返回登录页面。
这是我实际的webconfig。
<configuration>
<configSections>
</configSections>
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString='Data Source=.'SQLEXPRESS; AttachDbFilename = "C:'Users'Maxime'Documents'Visual Studio 2010'Projects'ClientPortal'ApplicationUI'Website'ClientPortal'App_Data'DataUi.mdf";Integrated Security=True;User Instance=True'
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<pages validateRequest="false" />
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
<sessionState cookieless="false"/>
<httpRuntime maxRequestLength="1048576"/>
</system.web>
<appSettings>
<add key="FolderPath" value="uploads" />
</appSettings>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
</configuration>
我应该在网络配置中放一些其他东西来禁用它吗?
这有点烦人。。
您正在使用ASP.Net表单身份验证。默认的超时时间是30分钟(半小时),我很惊讶它能让你空闲一个小时。
使用以下代码控制超时时间。
<system.web>
<authentication mode="Forms">
<forms timeout="50000000"/>
</authentication>
这是因为Session
超时了。
你可以在这里阅读这个问题以及修复它的方法
在表单标记中,您需要添加slidingExpiration=true
,这样,如果用户在一小时内处于活动状态,则用户不会注销。他们注销的原因是会话超时,通过使用滑动过期,每次用户提出请求时,会话都会延长会话时间。
这是我用来避免会话过期的一个小javascript
<script type="text/javascript">
PingAspToKeepSession();
function PingAspToKeepSession() {
var url = "KeppSession.aspx";
var httpOb = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
httpOb.open("POST", url, true);
httpOb.send("");
window.setTimeout("PingAspToKeepSession();", 60000); // every 60 seconds
}
</script>