ASP.NET MVC成员资格 - 用户经常注销 - 不知道原因

Cia*_*her 7 asp.net-mvc asp.net-membership shared-hosting membership-provider asp.net-mvc-4

我有一个ASP.NET MVC 4 Web应用程序.在本地运行,它工作正常,但在Web主机(使用共享主机)上,登录用户经常被重定向回主页注销.在大多数情况下,用户仅在执行少量操作后才会注销.

网络主机建议我的应用程序可能耗尽了太多的内存,但我用一个程序来分析内存使用情况,我确认它没有使用过多的内存 - 实际上应用程序似乎使用了分配的一小部分网络主机上的内存.

以下是使用的登录方法:

    public static Boolean Login(string Username, string Password, bool persistCookie  = false)
    {

        bool success = Membership.ValidateUser(Username, Password);
        if (success)
        {
            FormsAuthentication.SetAuthCookie(Username, persistCookie);
        }
        return success;
    }
Run Code Online (Sandbox Code Playgroud)

在我的Web主机中,表单身份验证超时设置为60分钟,因此这不应该是一个问题,对吧?

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="60" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

并且我的会话状态超时值也设置为60分钟:

<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="60">
Run Code Online (Sandbox Code Playgroud)

基于这里的答案,我也添加了这一行,似乎没有解决问题:

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps"></machineKey>
Run Code Online (Sandbox Code Playgroud)

对问题可能是什么以及我可以做些什么来解决问题的任何想法?

Spa*_*row 2

您的会话没有超时。IIS 崩溃了。由于您在内存中使用会话,因此每次 IIS 崩溃时,您的会话都会消失并且用户会注销。您应该检查服务器的事件视图并查看错误的详细信息以找出错误是什么。