我有一个MVC 4应用程序并使用默认身份验证提供程序。我没有使用持久性cookie。
我在开发过程中没有任何问题,但是当我在HostGator上托管时,当我尝试创建一个新项目(HTTP POST)时,我有时会被注销。发生这种情况时,我最终会登录到登录页面,就像我未经过身份验证一样。
HostGator没有多个网络服务器上的应用程序,所以我想我不应该担心机器密钥的东西。我错了吗?
当发生这种情况时,我只需再次登录并再次创建该项目即可成功。一旦发生这种情况,我就无法重现这个问题。我尝试重新打开浏览器甚至不同的浏览器,但创建项目将始终有效。如果我稍后再尝试,它似乎再次发生。
一些额外的信息,超时设置为2880(MVC项目的默认值),我知道这很长,但我看不出它是如何相关的。不过,我以为我会提到它。
因此,我无法查看IIS日志或事件查看器以了解可能发生的情况,但我可以向应用添加更多日志记录。任何人都可以提供有关检查内容或要添加到诊断的日志记录的想法吗?
由于
修改
我意识到我可以访问IIS日志,所以我比较了成功的POST和失败的POST,并立即注意到了。
当我第一次执行GET加载项目/创建页面/视图时,填充了cs-username,但是当我执行POST来创建项目时,它已经消失了。我可以看到,当我再次登录并且能够成功创建项目时,该POST确实填充了cs-username。
为什么它会在GET和POST之间消失?从GET到POST有7分钟的延迟,但我可以看到我在GET前1分钟登录,所以当帖子发生时,会话只有8分钟。我已经仔细检查过我没有明确配置sessionstate所以默认值应该是20分钟。我觉得我正在做些事情,但不确定到底是什么。
答案 0 :(得分:0)
可能值得添加Glimpse,尽管在部署的代码上运行它有点冒险。但是,它可以让您了解服务器上实际发生的情况。我从来没有使用过HostGator,所以我不能肯定地说,但是如果他们积极地回收应用程序池,那会使你的登录无效,并解释为什么注销似乎是随机发生的。