我发现,当我同时使用进程外状态服务器打开应用程序池中的“启用32位应用程序”参数时,不会在工作进程之间维护会话状态(就像IIS)正在忽略我的状态服务器配置并使用inProc)。此应用程序有特定的原因,为什么我需要同时启用32位和多个工作进程(有一个我必须调用的Crystal Reports库,该库以32位运行,并且该库具有一些讨厌的进程阻塞,这会阻止访问如果没有多个工作进程,则可以访问该站点的其余部分。
我验证了基础知识(多种浏览器:Firefox,Chrome,IE,Edge和Safari),对状态服务器配置(运行,tcp端口正确,IIS中配置的机器密钥,TCPIP回送:42424)作为目标进行了三重检查等)。我创建了一个虚拟的1页项目,目的是在不知道以前的GUID时将GUID保存在会话状态下,然后执行ajax刷新以显示GUID和工作进程ID,并且我可以看到每个进程ID会返回不同的GUID (GUID遵循进程ID)。一旦翻转32位应用程序开关,IIS似乎真的会忽略进程外状态服务器。感谢您提供有关如何解决此问题的所有信息。
编辑添加:我只是将我的小型测试站点放在2012 R2服务器上,却没有发生此问题。在IIS 10 / Server 2016中似乎是一个问题。