c#web app用户无任何理由退出

时间:2012-04-23 13:25:54

标签: c# asp.net session web-config

我有一个已在服务器上开发和安装的应用程序。 然后,我们需要在另一个Web服务器上安装相同的应用程序,从迁移开始,我们开始发现几个问题。

目前,应用程序用户无需任何理由即可注销(无错误,只需注销)。 This is the Web.config,我还设置了sessionState timeout =“1800”,但在2分钟不活动后,我被踢了出去。

我无法在服务器上调试它,因为服务提供商没有调试工具,而且我不是.net开发人员,我无法找到任何解决方案。 查看我没有找到任何内容的microsoft文档,日志不会报告错误或内存限制。

我该怎么办? 我可以告诉你所有你需要了解或帮助我找到解决这个问题的方法,请问我。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以通过两件事来解决此问题。仅适用于(您的表单身份验证和其他属性设置正确)。

  1. 在web.config中创建一个机器密钥。
  2. 将应用程序池进程空闲时间更改为更高限制。默认为20分钟。
  3. 当进程闲置超过20分钟时,它会终止工作进程并重新生成计算机密钥。虽然客户端计算机上的现有cookie使用较旧的机器密钥加密。由于它不会使用最近生成的新机器密钥进行解密,因此用户将被发送到登录页面以重新输入凭据,因此也可以创建新的持久性cookie。

答案 1 :(得分:0)

您的web.config设置为使用存储在Cookie中的SessionID。使用Web浏览器开发人员工具验证ASP.NET_SessionID cookie的超时。下次你被踢出时,cookie可能不再存在。

查看您的web.config,您似乎没有使用ASP.net身份验证。如果你是,它会看起来像这样。

<authentication mode="Forms">
   <forms name="appname" defaultUrl="Default.aspx" loginUrl="Login.aspx" 
       protection="All" path="/" timeout="480" slidingExpiration="true"/>
</authentication>

模式可以设置为Windows | Forms | Passport | None。你的设置为无。您可能仍在使用身份验证,但必须在IIS中设置。