在最近的硬件问题之后,我尝试将几个网站切换为使用新的个人应用程序池。我们的登台服务器上的测试运行正常,并没有明显的负面后果。
不幸的是,在我们的直播机器上尝试相同的操作会使我们的一个关键应用程序陷入困境 - 我最好的猜测是会话状态存在某种不匹配。我可以正常登录,但稍后点击几下会出现一个屏幕,该屏幕是部分登录屏幕,但所有菜单都可见。这向我表明系统的 part 认为会话已丢失(重定向到登录页面),但IIS本身并未丢失会话(因此主页上显示的菜单)。
我尝试使用IIS管理器回收所有应用程序池(新旧)和每个网站。我还尝试了对web.config文件的单空间更改,以及dll的完整版本。不过,我可以间歇性地使用该系统进行几次点击,做一些有用的东西,然后可能再次发现自己处于登录屏幕或类似情况。我们有一些日志记录,在某些情况下,我可以看到会话在几秒钟后超时,大大低于应用程序池中的设置(默认为20分钟)。
只要我将网站的应用程序池切换回默认设置,一切都恢复正常。
我错过了什么?任何建议都感激不尽!
编辑:
想到......在暂存环境中,我确实将App-pool命名为与网站名称不同(例如Xxxx_Dev,Xxx_Test等),但在现场我只是将其命名为与网站相同的名称。这会导致问题吗?
答案 0 :(得分:0)
您的各种应用程序都使用表单身份验证吗?您是否在Authentication标记下的web.config中的每个表单标记中指定了唯一的路径属性?
答案 1 :(得分:0)
行。我想我已经找到了问题。
我实际上正在使用由其他人设置的应用程序池 - 具有预期的名称 - 但是他们已经使用“属性”,“性能”选项卡进行了设置。 Web Garden选项使用4个工作进程。我现在把它改为1.
由于会话状态存储在“进程中”(默认),每次连接点击新线程时,它也基本上丢失了任何存储的会话变量,正如我现在所理解的那样。
早期,但只需切换到新更改的应用程序池(到目前为止没有重新启动或web.config保存所需),所有内容似乎都正常运行。