asp如何能利用iis6的web园的多进程的好处?

haitao 2010-03-12 01:22:00
在iis6的web园的设置了超过1的最大进程数,asp的session信息跨进程就会丢了
搜到的只有asp.net的:不使用inproc而是采用session服务

而前几天偶尔发现一个asp页面很奇怪,它执行很慢(因为需要很多次的sql查询),而且会导致别的asp网页也等在那里了!
一般的asp页面都是可以并发执行的,虽然只有一个解释器进程

所以想在iis6的web园的设置了超过1的最大进程数,但是结果就是asp的session信息就会丢!
这样,岂不是无法使用web园的优势了——服务器的cpu核比较多,一个asp卡死所有的页面,也太可惜了。。。。。。。
...全文
857 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoulinli915 2012-05-03
  • 打赏
  • 举报
回复
我有个问题,麻烦大家帮个忙?先在我的iis架设.net服务器,有时IIS就不对外服务了,登录远程桌面,在iis中可以浏览页面,通过浏览器(远程桌面的,或其他电脑的)访问网站,都是访问不到,希望大家能给点建议,系统重做了,iis重配置的,是万网配的,谢谢大家
haitao 2011-08-10
  • 打赏
  • 举报
回复
使用win2008r2后,好像没有这种 一个asp在慢速执行会影响其它人的asp查询 的现象了!
好像这个版本的asp解释器总算有点真正的多线程的感觉了
haitao 2010-03-24
  • 打赏
  • 举报
回复
因为应用使用了很多服务端的信息,修改面会很大

看来,这样的asp应用是无法使用web园、多进程的好处了。。。。。。。。

另外,一个带数据库操作的慢速的asp,会导致其它带数据库操作的asp都阻塞,无数据库操作的asp不受影响,的确也不应该
alicezhou2010 2010-03-18
  • 打赏
  • 举报
回复
我前几天也遇到了相似的问题,后来是孟子E章给的答案,他的建议是:如果是session存储的是简单的字符串等,可以考虑用Cookie,参考他给的建议,就解决了,不过我用的就是简单的会员登录之类的。
sixth_sense_ 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 net_lover 的回复:]
你的数据库执行不完,页面当然也在执行的过程中,即使没有数据库,纯代码如果执行时间长(如循环)也照样会等待

静态页面可以由Http.sys从缓存中直接返回,无需有iis工作进程来处理

工作进程和线程是不同的

应用程序池的Web园可以多个Web园,以提高性能/

你可以参考

http://technet.microsoft.com/zh-cn/library/cc73980……
[/Quote]

ok
haitao 2010-03-12
  • 打赏
  • 举报
回复
我说的静态页面不准确,是与不用访问数据库的asp页面

我现在是把asp、aspx、isapi(delphi写的)分别指定不同的应用程序池
但是asp因为session无法跨进程共享,也就只能有一个进程

而某个访问数据库的asp阻塞后,所有需要服务数据库的asp都被阻塞了,只有不用访问数据库的asp页面会立即返回
孟子E章 2010-03-12
  • 打赏
  • 举报
回复
你的数据库执行不完,页面当然也在执行的过程中,即使没有数据库,纯代码如果执行时间长(如循环)也照样会等待

静态页面可以由Http.sys从缓存中直接返回,无需有iis工作进程来处理

工作进程和线程是不同的

应用程序池的Web园可以多个Web园,以提高性能/

你可以参考

http://technet.microsoft.com/zh-cn/library/cc739802%28WS.10%29.aspx

http://laiba.tianya.cn/laiba/CommMsgs?cmm=16590&tid=2692159149101736280

http://www.pd9.cn/iis/?my_url=/iis/htm/arc_core.htm
Dogfish 2010-03-12
  • 打赏
  • 举报
回复
上面那个回答错帖子。

asp在多个进程时,session不是共享的。
asp.net为了解决这个问题,加了一个asp.net session state服务。

Dogfish 2010-03-12
  • 打赏
  • 举报
回复
反安装
KB917537
KB939373
http://forums.iis.net/t/1144458.aspx
haitao 2010-03-12
  • 打赏
  • 举报
回复
阻塞120秒,那就是所有其他人都不得不等待120秒,哪怕他们的点击页面本来可以很快执行完的。。。。。。

不过,我看到的现象好像是:只有与数据库应该的页面,才会阻塞,静态页面仍然是正常(没阻塞)的
这说明了什么?什么解释器还是多线程的,但是数据库访问那块才是排队的??
这个是不是哪里的配置问题??
haitao 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 net_lover 的回复:]
阻塞是正常的。iis8把请求放在一个队列里面。前面的执行没有结束,后面的要排队。但iis6好像只能阻塞120秒。超过这个数就会继续。在asp.net里测试这样的
[/Quote]

asp的解释器是这样工作的?那根本不是多线程并发啊。。。。。。。
多线程并发是每个页面都由一个线程去解释执行,同时可以有n个页面被执行,超过的页面才开始排队
这样,偶尔有一两个页面特别慢,也还有n-2个线程能很快执行完,开始执行排队的页面

阻塞120秒,那就是所有其他人都不得不等待120秒,哪怕他们的点击页面很快。。。。。。

不过,我看到的现象好像是:只有与数据库应该的页面,才会阻塞,今天页面仍然是正常的
这说明了什么?什么解释器还是多线程的,但是数据库访问那块才是排队的??
这个是不是哪里的配置问题??
chinaluozhiwei 2010-03-12
  • 打赏
  • 举报
回复
为何你们要用session缓存在服务器端呢,其实没有那个必要。用cookies放在浏览器不一样麻。安全性其实也没什么的
孟子E章 2010-03-12
  • 打赏
  • 举报
回复
阻塞是正常的。iis8把请求放在一个队列里面。前面的执行没有结束,后面的要排队。但iis6好像只能阻塞120秒。超过这个数就会继续。在asp.net里测试这样的
haitao 2010-03-12
  • 打赏
  • 举报
回复
现有的asp是几年以来陆陆续续实现的,已经都直接使用session("varname")了,如果要修改,量太大了。。。。。。
看来是没有办法了

另外,一个asp页面会堵塞所有的asp页面,也是可能的?
按理说,虽然asp解释器是一个进程,但是它支持多线程的啊,平时好像也是多线程解释多个页面的
为什么那个页面会堵塞所有的asp页面?
孟子E章 2010-03-12
  • 打赏
  • 举报
回复
你可以参考
http://msdn.microsoft.com/zh-cn/library/aa479313.aspx
将asp的Session保存到其他地方,结合Cookie应该可以实现
孟子E章 2010-03-12
  • 打赏
  • 举报
回复
那就需要不要session的功能了。这个好像没办法。asp.net可以将session保存到其他地方。
如果是session存储的是简单的字符串等,可以考虑Cookie

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧