iis6.cab中session丢失,在服务器本机上没事,客户端不行。不是应用程序池的问题,iis也重装了还是不行

最近服务器出现了几个问题:多个.NET版本造成网站瘫痪和Session丢失。
针对第一个问题可使用多个应用程序池来解决;第二个采用了把session存在aspnet_state进程中(aspnet_state进程独立于w3wp.exe);
但对第二个问题很纠结,为什么Session存在w3wp进程中会丢失,之前猜测可能是其他应用程序占用内存太大,以至于系统回收内存把session给回收了。但继续研究才发现有3个w3wp进程,这事由于Web园被设置了。下来来理解下相关概念和原理:
首先了解下应用程序池
应用程序池是一个工作进程或多个工作进程的集合,默认情况下每个应用程序池都会有一个工作进程(w3wp.exe)与之对应,由于工作进程是相互隔离的,所以一个应用程序池发生问题不会对已另一个应用程序池中的应用程序造成影响。这也被常被用于解决多个.NET版本问题。
再来了解下Web园
一个应用程序池默认是开启一个工作进程,但也可以开启多个工作进程,这样可提高性能,这个功能名为Web园,是小型的&Web农场&,您无需使用多台计算机来传送相同内容(Web农场),而是可以使用一台计算机中的多个进程来传送相同内容。
配置Web园:
IIS-&应用程序池-&选中使用的应用程序池-&右键属性-&性能-&Web园-&最大工作进程数
设置最大进程数大于1,如果这个值大于1,每个请求将启动一个新的工作进程实例,可启动的最多进程数位您所设置的进程数,最大可设置为4000000.后续请求将以循环的方式发送至工作进程。但使用Web园要考虑以下两点:
每一个工作进程都会消耗系统资源和CPU占用率,太多的工作进程不仅会导致系统资源和CPU利用率急剧消耗,还会造成资源竞争;
每一个工作进程都具有自己的状态数据,由于请求以循环的方式路由到应用程序池工作进程,这就造成数据不一致,比如session丢失等;
还有些朋友发现有多个w3wp进程,很不理解,有些朋友甚至认为是病毒。其实这完全和Web园的设置有关,一个工作进程就是一个w3wp.
阅读(...) 评论()天把服务器有win2000换成了win2003,IIS自然也升级到了6.程序中不少地方运用了iframe,相应的问题也出现了。iframe中的文件得不到父页面的session,application也得不到;但是如果一个独立的页面是可以获得到session以及application的(注:这也不是绝对的,有的时候也会丢失),于是就在浩瀚的WWW世界狂google啊,结果令人大失所望&&
是不是IIS6的问题呢,因为在IIS5中,这个问题是不存在的,再加上偶刚接触IIS6,相对于IIS5在工作原理上还是有很大差别的。打开IIS管理器,仔细看了看,原来有一个应用程序池&&果然问题就出现在了这里,下面向大家详细介绍如何解决在windows2003、IIS6中,asp或者asp.net程序session、application丢失的问题。
1 运行环境:windows2003 + IIS6 + ASP(ASP.NET)
2 问题症状:页面的sessionid会改变,刷新一次改变一次;不能从父页面获得正确的session;iframe中得不到application。
3 解决办法:a IIS6中相比IIS5增加了一个应用程序池,默认是使用DefaultAppPool,如图一所示。图一b 先为站点建立一个应用程序池,打开IIS管理器,右键点击应用程序池-新建-应用程序池,如图二。图二c 输入你的应用程序池的ID,这里我输入的是localhost,应用程序设置选择第一项,点击确定,可以在应用程序池下看到新建的应用程序池。如图三、图四所示。图三图四d 对你的每个站点进行设置,进入站点的属性对话框,点击主目录选项卡,将应用程序池选择为刚才新建的,确定,如图五。其他站点操作类似。图五
现在再看看你的asp或者asp.net的相关程序,是不是关于session以及application的问题已经解决了?
以上是我在解决问题中摸索出来的,如果有不正确的地方请指正!&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:85049次
积分:1587
积分:1587
排名:第18435名
原创:72篇
转载:16篇
评论:11条
(1)(5)(10)(3)(2)(6)(4)(2)(9)(1)(4)(1)(2)(4)(3)(2)(4)(1)(2)(20)(2)iis6下session经常获取不到的有关问题 - IIS当前位置:& &&&iis6下session经常获取不到的有关问题iis6下session经常获取不到的有关问题&&网友分享于:&&浏览:186次iis6下session经常获取不到的问题?iis6下session经常获取不到的问题?在我本地,以及公司内部的服务器上,网站登陆后一切正常但是发布到外网服务器,经常出现session丢失,跳转到登录页面,刷新几次又正常请问这是怎么回事?------解决方案--------------------http://blog.csdn.net/cryeyes/archive//5935776.aspx
------解决方案--------------------在web.config中加上&configuration&&system.web&
&sessionState cookieless=&true&
regenerateExpiredSessionId=&true& /&&/system.web&&/configuration&
------解决方案--------------------你改变一下session的存储方式试试:&!--配置session:mode:设置将Session信息存储到哪里,三种存储方式,当session容易丢失时,请尝试更改存储方式:& Off:设置为不使用Session功能;InProc:设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值; StateServer:设置为将Session存储在独立的状态服务中; SQLServer:设置将Session存储在SQL Server中。 cookieless:设置客户端的Session信息存储到哪里:ture 使用Cookieless模式;false 使用Cookie模式,这是默认值。 timeout:设置经过多少分钟后服务器自动放弃Session信息,默认为20分钟。& stateConnectionString:设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:&tcpip=127.0.0.1:42424”。当mode的值是StateServer是,这个属性是必需的。 sqlConnectionString:设置与SQL Server连接时的连接字符串。例如&data source=Integrated Security=SSPI;Initial Catalog=northwind&。当mode的值是SQLServer时,这个属性是必需的。 stateNetworkTimeout:设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。
--&如:&sessionState mode=&InProc& stateConnectionString=&tcpip=127.0.0.1:42424& sqlConnectionString=&data source=127.0.0.1;Trusted_Connection=yes& cookieless=&false& timeout=&30&
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有iis应用程序池的服务停止的解决方法_百度知道The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.

我要回帖

更多关于 iis6.cab 的文章

 

随机推荐