请教一个关于网站不能正常访问的问题,很棘手,怀疑是IIS问题

wroxdo 2014-11-30 02:23:00
最近接手了一个项目,asp.net的,很棘手
项目累积了多年,代码梳理很困难。

问题现象是,网站的每个页面打开需要两分钟以上,而且经常超时。
排查原因是数据库服务器 CPU占有100%,内存占用8G左右
后排查数据库服务器,发现有个存储过程频繁调用,来自于页面服务器的调用,导致这个现象

页面服务器删除该页面后,数据库回复正常,

后 继续阅读该页面代码,有个usercontrol在调用这个存储过程
排查调用存储过程的代码,代码正常
将调用代码加入日志记录
发现问题现象:只要网站一部署运行,该代码就会自动调用,大概每秒10次的样子,迅速导致数据库服务器负载100%
准确的说是,网站一部署,该页面就会自动循环调用,类似死循环一样的调用,导致数据库不能正常访问

IIS服务器现在是正常状态,基本可以排除病毒或网络攻击的原因

于是怀疑是IIS网站启动时会自动调用该页面,
但是程序并没有global.asax文件

所以想请教一下
除了global,IIS还有什么办法可以自动调用一个页面,而且是循环调用
如何能准确的定位,是谁在调用这个页面
这个循环调用是来自于其它服务器,还是程序本身的问题尚不明确
...全文
371 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wroxdo 2014-12-01
  • 打赏
  • 举报
回复
基本确定原因了,是伪静态导致的, webconfig里有两个伪静态页指向了问题页面, 将一个伪静态换成一个新网页,勉强能访问, 将两个伪静态同时指向新网页,数据库继续死 故推断是伪静态导致的,但还没找到伪静态导致死循环的原因
wroxdo 2014-11-30
  • 打赏
  • 举报
回复
感谢楼上兄弟的详细回答,周一逐一试试, 现在这个项目刚接过来,团队,代码,项目流程一堆堆的问题, 代码换了很多人连一行文档都没 首先让网站运行起来,后边就好办了
  • 打赏
  • 举报
回复
1. 在本机“测试环境+vs调试环境”上重现这个问题,不要在生产服务器上。 2. 让存储过程 raiserror,看看程序在哪里会抛出异常并自动跳到vs的调试环境里。 3. 在global.asax中记录所有收到的远程访问请求。在IIS中查找同样的日志。查看是否是外部触发引起的操作。 4. 如果上面都失效,那么干脆就删除这个用户控件或者存储过程,等以后发现了新的问题再说吧。 我觉得你们只有手工拼凑代码的思维方式,“代码梳理”其实是盲目的,你们不敢“删除代码”。
蝶恋花雨 2014-11-30
  • 打赏
  • 举报
回复
全局搜索该项目这个页面。看看哪里调用了?JS还是什么 会不会设置settimeout来隔几秒就调用此页面了。

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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