C# 阻止webroot更改时会话结束

C# 阻止webroot更改时会话结束,c#,asp.net,session,session-state,session-timeout,C#,Asp.net,Session,Session State,Session Timeout,我们的内部网有一个自定义的成员资格系统(不是asp成员资格),它将值放入会话信息中以识别用户。随着内部网的不断发展,我通常每天都要向实时服务器发布几次更改。每次我这样做,登录用户的会话都会结束,他们必须再次登录。这导致了各种各样的问题,我在这里不会让任何人感到厌烦 我的问题是——到底有没有办法防止这种情况发生,还是我必须忍受它?在过去的3个小时里,我一直目不转睛地盯着看,却找不到解决办法 提前感谢。您应该尝试您应该尝试解决方案是使用不同的会话模式;您使用的是“InProc”,这意味着会话存储在与

我们的内部网有一个自定义的成员资格系统(不是asp成员资格),它将值放入会话信息中以识别用户。随着内部网的不断发展,我通常每天都要向实时服务器发布几次更改。每次我这样做,登录用户的会话都会结束,他们必须再次登录。这导致了各种各样的问题,我在这里不会让任何人感到厌烦

我的问题是——到底有没有办法防止这种情况发生,还是我必须忍受它?在过去的3个小时里,我一直目不转睛地盯着看,却找不到解决办法


提前感谢。

您应该尝试

您应该尝试

解决方案是使用不同的会话模式;您使用的是“InProc”,这意味着会话存储在与应用程序相同的应用程序空间中。您可以使用“StateServer”或“SQLServer”,但这可能需要更改应用程序(以及其他设置;StateServer需要在IIS服务器上运行一个单独的服务,SQLServer需要一个数据库来存储信息)。存储在会话中的所有内容都需要可序列化


.

解决方案是使用不同的会话模式;您使用的是“InProc”,这意味着会话存储在与应用程序相同的应用程序空间中。您可以使用“StateServer”或“SQLServer”,但这可能需要更改应用程序(以及其他设置;StateServer需要在IIS服务器上运行一个单独的服务,SQLServer需要一个数据库来存储信息)。存储在会话中的所有内容都需要可序列化


.

如果您的问题是让服务器全天候运行,而不会对用户造成任何中断(会话丢失/系统停机等),那么它包括以下步骤:

  • 您应该将应用程序配置为在DB中存储会话
  • 您需要将多个应用服务器设置为故障转移策略
  • 要动态地将请求路由到这些服务器之一,您需要一个负载平衡器
  • 现在,当您要将下一版本的release live部署到应用程序时。服务器表示S1和S2,请按照以下步骤操作: [4.1.]更改负载平衡器配置,使其不会将请求路由到S1。 [4.2.]将应用程序部署到S1 [4.3.]更改您的负载平衡器配置,因为这次它包括S1和排除S2。(所有后续请求都应点击S1,从连接S1和S2的公共数据库获取会话信息) [4.4.]根据需要重复上述步骤
  • 最重要的是,在您的登台环境中始终测试上述步骤,然后再在实时/生产环境中进行测试


    祝你好运

    如果您的问题是让服务器全天候运行,而不会对用户造成任何中断(会话丢失/系统宕机等),那么它包括以下步骤:

  • 您应该将应用程序配置为在DB中存储会话
  • 您需要将多个应用服务器设置为故障转移策略
  • 要动态地将请求路由到这些服务器之一,您需要一个负载平衡器
  • 现在,当您要将下一版本的release live部署到应用程序时。服务器表示S1和S2,请按照以下步骤操作: [4.1.]更改负载平衡器配置,使其不会将请求路由到S1。 [4.2.]将应用程序部署到S1 [4.3.]更改您的负载平衡器配置,因为这次它包括S1和排除S2。(所有后续请求都应点击S1,从连接S1和S2的公共数据库获取会话信息) [4.4.]根据需要重复上述步骤
  • 最重要的是,在您的登台环境中始终测试上述步骤,然后再在实时/生产环境中进行测试


    祝你好运

    谢谢!!这是有道理的。简直不敢相信1:我自己也找不到,2:我写了《眼罩》。我讨厌人们那样做。谢谢!!这是有道理的。简直不敢相信1:我自己也找不到,2:我写了《眼罩》。我讨厌人们那样做。