【问题标题】:How to set website in IIS or web.config to keep session?如何在 IIS 或 web.config 中设置网站以保持会话?
【发布时间】:2012-03-26 16:52:39
【问题描述】:

每当我更新项目中的文件并且我在网站上时,我都会失去身份验证。会话正在改变,或者我不知道会发生什么。 我应该做些什么改变?

这是 webconfig 的一部分

<system.web>
    <sessionState cookieless="UseCookies" mode="InProc" sqlCommandTimeout="1200" sqlConnectionString="Data Source=WINDOWS2008\SQLEXPRESS;User ID=dotnet;Password=1234" timeout="20" />
    <globalization culture="en-US" />
    <httpRuntime minFreeThreads="18" minLocalRequestFreeThreads="18" executionTimeout="1000000" maxRequestLength="1024000" requestLengthDiskThreshold="1024000" />
    <!-- <sessionState timeout="60" mode="InProc" />-->
    <!-- 
    Set compilation debug="true" to insert debugging 
    symbols into the compiled page. Because this 
    affects performance, set this value to true only 
    during development.
-->
    <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        </assemblies>

【问题讨论】:

    标签: asp.net iis web-config session-state


    【解决方案1】:

    您应该通过 cookie 使用身份验证。这样您当前登录的用户就不会受到会话丢失的影响。

    注意: 实际上,正确处理身份验证还有很多其他好处。依靠会话本身有很多问题,最重要的是它无法扩展。

    在此处阅读有关在 ASP.NET 中进行身份验证的更多信息:

    【讨论】:

      【解决方案2】:

      应用程序池将重新启动,会话状态将丢失。想象每个 ASP.NET 应用程序(在 IIS 中定义)都是桌面上的一个程序。保存 web.config 将执行类似于关闭程序并重新打开它的操作。

      您可以使用 Outproc 会话状态管理(例如:Sql Server)

      http://ravisystem.wordpress.com/2007/10/21/inproc-session-state-out-proc-session-state-in-aspnet/

      【讨论】:

        猜你喜欢
        • 2017-10-10
        • 2010-11-15
        • 2020-09-30
        • 2014-07-20
        • 2018-06-26
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 2016-02-23
        相关资源
        最近更新 更多