IIS设置多个Web园导致HttpContext.Current.Application、静态变量不能取值的问题

分类:.Net知识问答| 发布:camnprbubuol| 查看: | 发表时间:2012/4/19

问题:设置多个Web园会出现多个进程并发,达到了负载均衡和增加数据库连接数的目的,但同时也带来了很多的问题,

其中最多的就是Application、Session丢失的问题,虽然可以通过建立状态服务器(ASP.NET 状态服务)的方式解决Session丢失的问题,

但Application和静态变量的问题始终得不到解决,难道必须要建立分布式架构才行?多个进程难道不能共享一个主进程ID?盼解答!

回答:mazhou Microsoft (MSFT)

我前几天刚刚在这里讨论过类似的问题,您应该尽量在 Web 上少用静态性的东西,如 static 和 Application。

当 Web Farm 启用后,没有办法保证这些静态变量仍然静态。这个从理论上讲是 By Design 的 (因为 Web Farm 会启用多个 IIS 的 w3wp.exe,而每个 exe 都有自己的 AppDomain,那么 Application 就当然不唯一了。)

您可以试试看寻找第三方解决方案,比如找个负载均衡的硬件或其他方法。但我建议还是把 Application 里面共享的东西拿出来放在其他地方比较好。

来源:http://social.msdn.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/d53c7d44-75ce-460d-98b1-ef499e9b10e5

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/net-wiki/553.html