Asp.net 更改Web应用程序项目的IIS 6应用程序池

Asp.net 更改Web应用程序项目的IIS 6应用程序池,asp.net,iis-6,Asp.net,Iis 6,在最近的硬件问题之后,我尝试将我们的几个网站切换为使用新的、独立的应用程序池。在我们的登台服务器上的测试运行效果良好,并且没有明显的负面影响 不幸的是,在我们的实时机器上尝试相同的操作使我们的一个关键应用程序陷入困境——我最好的猜测是会话状态中存在某种不匹配。我可以很好地登录,但几次点击之后就会出现一个部分是登录屏幕的屏幕,但所有菜单都可见。这向我表明,系统的一部分认为会话已丢失(重定向到登录页),但IIS本身并未丢失会话(因此母版页上显示的菜单) 我尝试使用IIS管理器回收所有应用程序池(新的

在最近的硬件问题之后,我尝试将我们的几个网站切换为使用新的、独立的应用程序池。在我们的登台服务器上的测试运行效果良好,并且没有明显的负面影响

不幸的是,在我们的实时机器上尝试相同的操作使我们的一个关键应用程序陷入困境——我最好的猜测是会话状态中存在某种不匹配。我可以很好地登录,但几次点击之后就会出现一个部分是登录屏幕的屏幕,但所有菜单都可见。这向我表明,系统的一部分认为会话已丢失(重定向到登录页),但IIS本身并未丢失会话(因此母版页上显示的菜单)

我尝试使用IIS管理器回收所有应用程序池(新的和旧的),以及每个网站。我还尝试了对web.config文件进行单个空间的更改,以及dll的完整版本。尽管如此,我仍然可以间歇性地使用系统进行几次点击,做一些有用的事情,然后可能会发现自己再次出现在登录屏幕或类似屏幕上。我们有一些日志记录,在某些情况下,我可以看到会话在几秒钟后超时,大大少于应用程序池上的设置(默认为20分钟)

当我将网站的应用程序池切换回默认设置时,一切又恢复正常

我错过了什么?感谢您的建议

编辑:


只是想。。。在登台环境中,我确实将应用程序池命名为与网站名称不同的名称(例如Xxxx_Dev、Xxx_Test等),但在live中,我只是将其命名为与网站相同的名称。这会导致问题吗?

您的各种应用程序都使用表单身份验证吗?您是否在web.config中的每个表单标记的身份验证标记下指定了唯一的路径属性?

确定。我想我已经发现了问题所在

实际上,我使用的应用程序池是由其他人设置的(预期名称),但他们使用属性、性能选项卡| Web Garden选项设置了它,以使用4个工作进程。我现在将其更改为1

由于会话状态被存储在“进程中”(默认设置),每次连接到达一个新线程时,它实际上也会丢失任何存储的会话变量,正如我现在所理解的那样


早期,只是简单地切换到新修改的应用程序池(到目前为止不需要重新启动或web.config保存),一切似乎都正常运行。

不太清楚这段历史,我认为它是在ASP v1中手工制作的:配置中的身份验证模式是“Windows”,登录页面代码使用FormsAuthenticationTicket等。但是,请记住,此计算机上的配置与登台环境上的配置相同。我已将自己的答案标记为正确,因为更改此设置后,问题不再出现。