尽管IIS设置为FALSE

问题描述:

我们与IIS 7.5的aspx.net的应用程序和该应用程序正在失去或放弃对无明确原因的会议,我们正面临一个巨大的问题都App_pool循环设置,即使失去了自定义会话。由于客户端限制,我们必须使用自定义会话,而不是IIS会话。尽管IIS设置为FALSE

应用程序池正在使用管道:集成和框架为4,并且应用程序池中的所有“回收”设置都已设置为FALSE。

我说的客户会话是基于微软在这里提供的关于如何创建自定义会话的示例创建的.cs类。我们唯一不同于这个Microsoft示例的是我们添加了另一个名为'Token'的会话变量,并且每次我们需要检查会话ID时,我们还检查该令牌是否存在。正如你所看到的是一个简单验证的问题..但是再次,似乎IIS正在区分这个令牌会话。

当我们使用Fiddler跟踪应用程序时,它揭示了令牌ID是空的,但会话ID值仍然存在..所以我没有任何意义。

如果谁可以给我们的建议和提示也许已经对类似的问题,并告诉我们什么做的目的是克服我们真的,真的很感激帮助的问题。

请帮

+0

听起来像你应该使用'HttpContext.Current.Session [“yourSessionObject”]',并在在session_start事件 – MethodMan 2014-09-18 21:27:20

+0

下Global.asax文件初始化它是否有可能,它的回收,由于默认空闲设置?对我来说,令人惊讶的是,应用程序池的高级设置中有更多的回收设置。 http://technet.microsoft.com/nl-nl/library/cc771956(v=ws.10).aspx – Wouter 2014-09-19 17:00:35

有几件事情我会检查:

  • 您在Windows事件日志系统下的应用程序池回收(通常是下一个源),因为它可能是日志条目应用程序池仍然是回收瞒着你
  • 在Global.asax的Application_Start创建一个公共静态的DateTime捕获应用程序池启动时,写变量out作为的Application_BeginRequest事件的标题,以帮助确保应用程序池ISN不回收。有时回收利用是非常透明的,你可能没有注意到它们。
  • 您可以将会话状态存储在其他几个位置的应用程序池之外,例如: http://msdn.microsoft.com/en-us/library/vstudio/ms178586(v=vs.100).aspx即使Web服务器重新启动,状态服务器和SQL Server也会保留数据。
  • 是否有可能会导致会话ID在不应该变更时发生变化?让它看起来像会话正在丢失?