.Net 应用程序变量跨应用程序流失
本文关键字:应用程序 流失 变量 Net | 更新日期: 2023-09-27 18:31:57
我有几个网站具有共享代码库,因为它们本质上是相同的网站,除了一个用于英国市场,另一个用于美国市场。除了共享代码库外,他们还与非常基本的CMS共享数据库,以便每个网站都可以有一些不同的内容。
在站点上,我们有一个管理页面,可用于为每个网站设置一些HttpContext.Current.Application变量,这些变量不会经常更改,但我们可能希望立即更改而无需更新配置文件等。
现在,这在带有IIS 2003的服务器2003盒子上已经工作了好几年了。就在昨天,我们升级到带有IIS 8的闪亮的新Server 2012框,现在应用程序对象出现问题。
长话短说,现在当一个应用程序变量在一个网站上设置时,它会在两个网站上设置,因此英国市场看到美国的应用程序对象,反之亦然,这取决于最后设置哪个。
应用程序对象是从基于市场代码的数据库中提取的,这一切都运行良好(代码至少在几年内没有改变),我已经编写了一些日志记录来确认为每个网站加载了正确的对象。
每个网站都有自己的应用程序池,所以我真的看不出这是怎么回事。我已经使用 IIS 2008 在 Server 7.5 上测试了这些站点,它们在那里表现良好,同样,我使用 IIS 8 运行 Windows 8 开发计算机,我认为其设置与新的实时服务器相同(应用程序池配置相同,所有内容都相同),两个站点在那里执行正确的操作。
以前有没有人听说过这种问题,有没有人对我可以研究的事情有任何建议来解决这个问题?我认为甚至不可能在单独的应用程序之间共享应用程序对象,我的假设是错误的吗?
非常感谢!
马克
这听起来像是一个配置问题,你确定这些站点有不同的市场代码吗?看起来查询返回应用程序对象的wrong
值。
好的,事实证明,这是一个配置问题,而不是网站甚至 IIS。事实上,事实证明,我们的系统管理员在更改网站的DNS时,不小心将美国网站更改为英国IP地址,因此两个站点毕竟是同一个应用程序。恐怕我什至从未想过要ping网站以检查IP地址,我们现在都为没有早点发现它而感到愚蠢。我只能把它归结为早上开始一个可笑的早起来重新进行更改,导致一群过度疲惫的开发人员在野鹅追逐中。
不过,如果其他人有类似的问题,也许这会对他们有所帮助。