3

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

目前,应用程序用户正在无缘无故地注销(没有错误,只是注销)。 这是 Web.config,我还设置了 sessionState timeout="1800" 但在 2 分钟不活动后我被踢了出去。

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

我能做些什么?我可以给你所有你需要理解或帮助我找到解决这个问题的方法,问我。

谢谢!

4

2 回答 2

1

为了解决这个问题,您可以做两件事。好吧,只有如果(您的表单身份验证和其他属性设置正确)。

  1. 在 web.config 中创建机器密钥。
  2. 将应用程序池进程空闲时间更改为更高的限制。默认为 20 分钟。

当进程空闲超过 20 分钟时,它会杀死工作进程并重新生成机器密钥。而客户端机器上的现有 cookie 是使用旧机器密钥加密的。由于它不会使用最近生成的新机器密钥进行解密,因此用户将被发送到登录页面以重新输入凭据,并创建新的持久 cookie。

于 2013-06-06T15:29:16.997 回答
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 中进行设置。

于 2012-04-25T10:43:19.500 回答