IIS 崩溃跟重复提交数据有关系?

newnew003 2011-10-12 10:32:04
项目类型:CRM

使用范围:公司内部

运行环境:
一台web应用放在window server 2008 iis7.0 (64位系统,20G内存,8核CPU)
一台数据库服务器mssql 2008

项目架构: spring.net + nhibernate + asp.net mvc 4.0 + mssql2008 + extjs4.0

使用人数: 150-250左右


备注:
1.由于用的是ExtJs,所以有些操作,一般查询就要发送好几次请求,大概4-5次左右
2.web应用服务器除了web程序意外,还有一个socket 监听程序,是一个中介程序,分别跟两个不同的Socket连接端交互通许,不知道这个是否对IIS有影响

主要状况:IIS 经常崩溃,是整个IIS进程(World Wide Web Publishing Service) 死掉,这是最严重的,有时候就是应用程序池或站点自动停止掉。





情况:

1.在线用户少的时候没有那么容易挂掉,晚上大概有几个人在使用,10点-1,2点也会挂;

2.查看系统日志,在IIS挂掉的时候都捕捉了一些警告信息(不知道怎么解决):
为应用程序池“xxxxx”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误

3.查看系统日志,有一些警告信息,都是一些asp.net 程序的错误,一般都是查询啊,空引用之类的问题。

4.IIS应用池设置了快速故障防护,在观察系统日志的时候,由于asp.net 程序错误的次数慢慢累积到默认的10次就自动关闭掉站点,所以就设置了200,但还是挂掉

5.提交表单没有做重复验证,后来在实现防止短时间内重复提交多次表单,测试的时候(短时间内多次点击提交按钮),发现本地开发机器的IIS 也同样崩溃了,也出现跟 第2点 的警告信息,然后尝试重启IIS 服务,但是上面启动的按钮已经变灰了,不能启动,等过了几分钟以后又可以重启了。

6.根据 第5点 情况,把一些提交表单的地方都加了防止多次提交的处理(客户端JS+服务端的拦截),之后就有一天没挂掉过,(ps:现在是第二天早上)。

7.系统有导出数据的功能,就是使用FileHelper 来导出Excel数据,需要直接操作Excel COM 组件的,这个有关系?

8.现在只是项目刚刚上线,在做开发的时候是没有针对这方面去做优化,例如使用存储过程去解决并发性的问题。

9.曾经怀疑过是Session占用过多内存,把Session 的实现方式也改了,改成是服务进程,这个服务进程是跟数据库服务器放在一起的。结果还是一样会挂掉。




问题:

1.真的是因为 第5点 的原因导致IIS崩溃?
2.如果是 第5点 的原因,那IIS也太脆弱了吧?
3.有其他原因吗?例如网络硬件上
4.按照目前的运行环境,IIS能支撑多少人?怎么相对准确统计在线人数,并发数?(系统自带的性能检测,计数器可以统计吗?我好像没有找到)
...全文
538 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
newnew003 2011-10-27
  • 打赏
  • 举报
回复
问题补充:
当IIS服务进程挂掉的时候,就会连续有其他的(可能相关的)进程一同挂掉,如远程桌面,系统计划任务进程等等


目前状况:
部署结构已经作出改动,两台web应用服务器+1台数据库服务器,问题依旧,还出现其他的问题:
一台web应用服务器挂掉以后,相继地另外一台web应用服务器也挂掉,有时候连数据库服务器也挂掉。
本人不太懂硬件网络,不知道是否网络的原因导致出现这些反应(可能是连锁反应).

(PS:在改动部署结构之前,开始出现数据库服务器Mssql 服务挂掉的状况,web应用服务器时而挂一下,有时候一个星期才挂一次,好像周期性发作一样的)
  • 打赏
  • 举报
回复
最好各司其职(这是当然)一起来干(这是主要的,尽快排除所有方面的问题)。其中代码部分涉及较多,有程序逻辑,也有数据库操作方式,和数据库规则和存储过程,甚至有时可能还需要修正一开始时不合理的数据库设计。
  • 打赏
  • 举报
回复
的确不排除,加上用户有意无意的连击操作。

检查起来的话,最好各司其职:写程序的检查一下代码,保证代码至少优化到不要造成这种问题。负责服务器配置的就检查服务器配置。负责测试的就继续观察测试情况,找出规律。如果都是一个人做,那就辛苦了,呵呵。
newnew003 2011-10-14
  • 打赏
  • 举报
回复
修正: 不排除有这么一个原因:有些机器被安装了木马
newnew003 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 theforever 的回复:]

内容太多,如果提炼成标题就是那句话的话,答案是肯定的。所以网站一般都会作抗压力测试,就包括同时操作用户数量及每个用户不断重复提交的测试,发现问题进行改进,或者确定能支持的最大数量以告知用户。

具体各种测试和改进方法,楼主搜索一下网站性能和测试方面的文章吧。
[/Quote]

这个我也知道标题所阐述的是正确的,但根据目前情况,貌似对服务没有 "很大的压力" ,不排除有这么一个原因:有些机器被安装了目录,在提交表单的时候做了一些拦截,可能导致了重复提交表单

我很奇怪。。。。
要是这个项目是换了是可以在apache运行 会有这问题么?
郁闷中...
我改一下标题
TigerSubBK330 2011-10-13
  • 打赏
  • 举报
回复
我感觉不是内容多的原因,IIS有时候就会报一些奇怪的错误 比如你用的好好的也会出现IIS错误无法访问
但是重装了IIS后, IIS就又没错误了
所以这个错误很难解释,要是说的话我觉得在code里面减少访问的数据量, 不要把数据存在缓存里面
  • 打赏
  • 举报
回复
内容太多,如果提炼成标题就是那句话的话,答案是肯定的。所以网站一般都会作抗压力测试,就包括同时操作用户数量及每个用户不断重复提交的测试,发现问题进行改进,或者确定能支持的最大数量以告知用户。

具体各种测试和改进方法,楼主搜索一下网站性能和测试方面的文章吧。
archu 2011-10-12
  • 打赏
  • 举报
回复
我可以帮你看看,留个MSN给我?
晨晨 2011-10-12
  • 打赏
  • 举报
回复
存在这样的情况,当系统繁忙的时候,是会出现这样的情况

8,327

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 IIS
社区管理员
  • IIS
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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