Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .Net应用程序变量在应用程序之间溢出_C#_Asp.net_Iis_Windows Server 2012 - Fatal编程技术网

C# .Net应用程序变量在应用程序之间溢出

C# .Net应用程序变量在应用程序之间溢出,c#,asp.net,iis,windows-server-2012,C#,Asp.net,Iis,Windows Server 2012,我有几个网站有一个共享的代码库,因为它们基本上是同一个网站,除了一个是英国市场,另一个是美国市场。除了共享一个代码库,他们还与一个非常基本的CMS共享一个数据库,这样每个网站都可以有一些不同的内容 在这些网站上,我们有一个管理页面,可用于为每个网站设置一些HttpContext.Current.Application变量,这些变量不会经常更改,但我们可能希望在不更新配置文件的情况下随时更改 多年来,它一直在使用IIS6的Server2003机箱上运行良好。就在昨天,我们用IIS 8升级到了一个全

我有几个网站有一个共享的代码库,因为它们基本上是同一个网站,除了一个是英国市场,另一个是美国市场。除了共享一个代码库,他们还与一个非常基本的CMS共享一个数据库,这样每个网站都可以有一些不同的内容

在这些网站上,我们有一个管理页面,可用于为每个网站设置一些HttpContext.Current.Application变量,这些变量不会经常更改,但我们可能希望在不更新配置文件的情况下随时更改

多年来,它一直在使用IIS6的Server2003机箱上运行良好。就在昨天,我们用IIS 8升级到了一个全新的Server 2012 box,现在应用程序对象出现了问题

长话短说,现在当一个应用程序变量在一个网站上设置时,它会在两个网站上设置,因此英国市场会看到美国的应用程序对象,反之亦然,这取决于最后设置的是哪一个

应用程序对象是根据市场代码从数据库中提取的,这一切都很正常(代码至少有几年没有改变),我已经写了一些日志来确认每个网站都加载了正确的对象

每个网站都有自己的应用程序池,所以我真的看不出这是怎么回事。我用IIS 7.5测试了服务器2008上的站点,它们在那里表现良好。同样,我用IIS 8运行Windows 8开发计算机,我认为它的设置与新的实时服务器相同(应用程序池配置相同,所有配置都相同),两个站点在那里都做了正确的事情

以前有没有人听说过这类问题,有没有人对我可以研究解决这类问题的方法有什么建议?我认为甚至不可能在不同的应用程序之间共享应用程序对象,我的假设是错误的吗

非常感谢


标记

这听起来像是一个配置问题,您确定这些站点有不同的市场代码吗?看起来查询为应用程序对象返回了错误的值。

好的,结果是,这是一个配置问题,而不是网站甚至IIS的问题。事实证明,我们的系统管理员在更改网站的DNS时,意外地将美国网站更改为英国IP地址,因此这两个网站毕竟是同一个应用程序。我担心我从来没有想过通过ping网站来检查IP地址,我们现在都觉得没有早点发现这一点很愚蠢。我只能把它归结为一个可笑的清晨开始做改变,导致一群过度疲劳的开发人员在白鹅追逐


不过,如果其他人也有类似的问题,也许这会对他们有所帮助。

说清楚,这是关于
应用程序[]
的简单使用,而不是关于一些缓存或第三方库?哪个框架版本?是的,你是对的,我说的是应用程序[]的使用,它是在.Net 3.5中,这正是我所想的,因此我设置了日志来再次检查它。原来这是一场白费力气的追逐,看我的回答:-)