首页 新闻 会员 周边 捐助

一个asp.net网站经常卡死的问题

0
悬赏园豆:100 [已解决问题] 解决于 2015-12-18 15:29

最近,公司的网站因为一个接口关闭了,导致注册功能报错。但是老大请假了,接口所在的服务器无法重启,老大就叫我注释掉那个接口的入口,上一个临时的版本。  然后老大回来后重新启动服务器,我也把那个接口的入口放开。接下来就出现了神奇而让我头痛的问题:网站在一段时间内就会出现请求不到数据库的问题,就造成了网站无法打开。然后重启网站服务器就正常了! 最近一段时间一直出现这样的问题,一直找不到问题所在,只能笼统的觉得是网站代码是否出现了资源没释放、死锁、无限循环等。

      因为老大是做JAVA的,而我们网站是用MVC 做的,代码方面只能我自己去解决。所以,在这方面老大不能帮到我!

   我们现在所能确定的问题就是,前端所有的请求都没有到DB里面去。  但是找不到是什么地方导致所有请求不能到DB里面。 所有小弟在这里求助各位大神。帮忙分析分析,这样的问题该怎么解决?  有没有什么工具可以跟踪程序的代码!  

     我现在只有100多园豆了,我都 悬赏了。望各位大神帮帮我!

留恋丶一刻的主页 留恋丶一刻 | 初学一级 | 园豆:61
提问于:2015-12-09 15:53
< >
分享
最佳答案
1

請求不到服務器..感覺跟改程式無關

各個server抓包看看吧

收获园豆:100
RosonJ | 老鸟四级 |园豆:4910 | 2015-12-09 16:30

不是请求不到服务器,  是请求不到数据库   

留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 16:31

@留恋丶一刻: 

一樣

DB沒有接到請求

代表請求死在半路上

手上沒有code最直接就是抓包

RosonJ | 园豆:4910 (老鸟四级) | 2015-12-09 16:36

@RosonJ: 如何抓包?  这个是归于服务器一类还是归于程序一类!

留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 16:44

@留恋丶一刻: 

抓封包算是server除錯

工具推薦Wireshark

出錯的操作會經過的server都抓

看看斷在哪裡

再對該server上的程式或服務除錯

重點是先鎖定出問題的點

RosonJ | 园豆:4910 (老鸟四级) | 2015-12-09 16:53

@RosonJ: 这个是要针对线上的版本进行抓包还是可以对本地程序进行抓包。?

留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 16:58

@留恋丶一刻: 

兩個都會出錯?

RosonJ | 园豆:4910 (老鸟四级) | 2015-12-09 17:00

@RosonJ:  好吧   我大概明白了你这个抓包是什么了。   你这个应该是针对服务器-网络进行抓包分析,而不能针对本地程序进行分析。   

      针对网络方面的,老大会去找问题,我现在就是从程序代码上面看有没有什么地方会影响这个。

留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 17:04

@留恋丶一刻: 

沒錯

我想知道是否本地跟線上都有問題是因為

如果都有問題那基本可以排除環境因素,也就沒有抓封包的必要,鎖定程式除錯即可

RosonJ | 园豆:4910 (老鸟四级) | 2015-12-09 17:16

@RosonJ: 线下的不知道有没有问题,因为本地不可能像线上那些。本地时时刻刻在重新生成。像线上那样过一段时间请求不到数据库的错误查看不出来,因为线上只要重新启动服务器,这个问题在短时间内不会发生,但是在一天内可能出现这样的问题。 届时,又必须重新启动服务器才会好。

   我现在需要的就是你所说的“锁定程序出错”

留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 17:21
其他回答(8)
0

豆好多哇~

 

重点看看你改的那些代码。。。

小刺猬001 | 园豆:660 (小虾三级) | 2015-12-09 16:07

#region 加密字段 //电话 string timeStamp = Tools.GetTimeStamp(); string sign = Md5Helper.Md5Encode32(timeStamp + "dsfhsjhsjh67567fghk766y34yh5hsk"); //strresult = strservice.StrEncryptionJson(sign, timeStamp, tel);//接口调用 //strList = strresult != null ? strresult.data : strList; string Encryptiontel = "";//strList["text"].ToString();//加密后的联系方式 tel = Tools.RegRepTel(tel);//把联系方式中间的替换成* #endregion //以上是注释接口入口的代码 //下面是放开接口入口的代码 #region 加密字段 //电话 string timeStamp = Tools.GetTimeStamp(); string sign = Md5Helper.Md5Encode32(timeStamp + "dsfhsjhsjh67567fghk766y34yh5hsk"); strresult = strservice.StrEncryptionJson(sign, timeStamp, tel);//接口调用 strList = strresult != null ? strresult.data : strList; string Encryptiontel = strList["text"].ToString();//加密后的联系方式 tel = Tools.RegRepTel(tel);//把联系方式中间的替换成* #endregion

支持(0) 反对(0) 留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 16:12
1

操作数据库用的EF还是ADO.NET?

jackccc | 园豆:1341 (小虾三级) | 2015-12-09 16:16

 用的是linq to sql  。  555

支持(0) 反对(0) 留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 16:18

@留恋丶一刻:

linq to sql没有用过。不过还是说两个我所能想到的可能吧

1.是否操作数据库的连接没有被释放,然后不断的建立新的连接

2. 是否只有一个和数据库的连接在处理每次的数据库访问,而不是对于每个请求建立一个新的连接

支持(0) 反对(0) jackccc | 园豆:1341 (小虾三级) | 2015-12-09 16:38

@jackccc:   哦  好的, 我会参考你的建议去看看,但我觉得  linq to sql 应该不存在数据连接没有释放,linq to sql 是已经将数据库映射成模型了。

支持(0) 反对(0) 留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-09 16:43

@留恋丶一刻: 

ORM框架最終還是要跟DB溝通

只是一般不太需要考慮連線釋放問題

支持(0) 反对(0) RosonJ | 园豆:4910 (老鸟四级) | 2015-12-09 16:56
0

这个  可能是 数据库 连接池的问题 吧,连接池 在 web.config里面配置,网上搜索下 找解决的问题

唯我独萌 | 园豆:537 (小虾三级) | 2015-12-10 08:23
0

应该有代码版本控制吧。找到两次变更的地方对比一下。另外把具体的错误信息贴出来下~

幻天芒 | 园豆:37207 (高人七级) | 2015-12-10 08:47

没有找到具体错误。  只是知道每次请求都不会到数据库!

支持(0) 反对(0) 留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-10 09:22

@留恋丶一刻: 信息太少,实在是不好分析~

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-12-10 09:46
0

请求不到数据库?那是会报异常的吧,有没有记录异常日志,查看下

火悬崖 | 园豆:434 (菜鸟二级) | 2015-12-10 09:56
0

前端所有的请求没有保存到DB 数据库中,关于这个问题

首先确定 保存到数据库中的代码是java代码写的  还是C# 

如果是java的话请你们老大帮忙看下 java程序是否有接收到你发过来的请求

如果是C# 自己单步调试 应该可以找到原因的 。

傲雪江南 | 园豆:174 (初学一级) | 2015-12-12 16:33
0

既然都是临时版本。服务器重启了, 他的使命也就完成了撒,废弃即可。

小码蚁·兴 | 园豆:321 (菜鸟二级) | 2015-12-15 10:38
0

   没有找打答案

留恋丶一刻 | 园豆:61 (初学一级) | 2015-12-18 15:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册