一台服务器上2个asp.net网站,都使用Global.asax自动生成静态页,一个一直正常运行,一个过段时间就停止了
我的一台服务器上面一共就2个网站都是APS.NET做的,都使用了Global.asax自动生成静态页(这样就一直在访问自己的网站了,就不存在由于长时间没人访问而导致IIS...
我的一台服务器上面一共就2个网站都是APS.NET做的,都使用了Global.asax自动生成静态页(这样就一直在访问自己的网站了,就不存在由于长时间没人访问而导致IIS回收资源而使timer停掉)和2个处理数据库数据的方法。其中有问题的Global.asax是直接复制没问题的Global.asax后添加了一个方法。
现象:
正常的Global.asax网站运行了几个月都没有出现停掉的情况,异常的Global.asax每隔几个小时(目前看来是10个小时以内)就会停掉,这个是看生成的静态页的时间就可以可以看到的。
两个网站的区别,网站数据库结构是相同的,都是我一个人不同时期写出来的,想到的区别应该是访问量不同,正常的网站每天几百IP,异常的网站刚做,还没完成,只有自己访问,会出现一段时间没人访问的情况(我想这个应该不是原因,因为上面已经解释过了)。
2个网站以A和B来称呼
A.Global.asax timer时间周期为1分钟 注意这个是正常的
方法1:if(time % 5 == 0) 每5分钟生成首页静态页
方法2:if(time % 10 == 0) 每10分钟update下数据库一张表的内容
方法3:if (dt.Hour == 8 && dt.Minute > 1 && dt.Minute < 10)每天早上8点1分到10分中重复执行update特定新闻的时间(重复执行是为了防止执行失败,所以故意在这10分钟内多执行几次)
B.Global.asax timer时间周期为1分钟 注意这个是异常的
方法1:if(time % 5 == 0) 每5分钟生成首页静态页
方法2:if(time % 10 == 0) 每10分钟update下数据库一张表的内容
方法3:if (dt.Hour == 8 && dt.Minute > 1 && dt.Minute < 10)每天早上8点1分到10分中重复执行update特定新闻的时间(重复执行是为了防止执行失败,所以故意在这10分钟内多执行几次)
方法4:if (dt.Hour == 0 && dt.Minute == 1)每天凌晨0点1分钟的时候执行 数据库操作处理数据(这个数据量有100多条的一个循环,不过目前来看都没坚持到这个时间TIMER就已经停止了)
其中方法一是各自生成自己的静态页,方法2和方法3三层,数据库字段基本一样。方法4是B网站独有的。 展开
现象:
正常的Global.asax网站运行了几个月都没有出现停掉的情况,异常的Global.asax每隔几个小时(目前看来是10个小时以内)就会停掉,这个是看生成的静态页的时间就可以可以看到的。
两个网站的区别,网站数据库结构是相同的,都是我一个人不同时期写出来的,想到的区别应该是访问量不同,正常的网站每天几百IP,异常的网站刚做,还没完成,只有自己访问,会出现一段时间没人访问的情况(我想这个应该不是原因,因为上面已经解释过了)。
2个网站以A和B来称呼
A.Global.asax timer时间周期为1分钟 注意这个是正常的
方法1:if(time % 5 == 0) 每5分钟生成首页静态页
方法2:if(time % 10 == 0) 每10分钟update下数据库一张表的内容
方法3:if (dt.Hour == 8 && dt.Minute > 1 && dt.Minute < 10)每天早上8点1分到10分中重复执行update特定新闻的时间(重复执行是为了防止执行失败,所以故意在这10分钟内多执行几次)
B.Global.asax timer时间周期为1分钟 注意这个是异常的
方法1:if(time % 5 == 0) 每5分钟生成首页静态页
方法2:if(time % 10 == 0) 每10分钟update下数据库一张表的内容
方法3:if (dt.Hour == 8 && dt.Minute > 1 && dt.Minute < 10)每天早上8点1分到10分中重复执行update特定新闻的时间(重复执行是为了防止执行失败,所以故意在这10分钟内多执行几次)
方法4:if (dt.Hour == 0 && dt.Minute == 1)每天凌晨0点1分钟的时候执行 数据库操作处理数据(这个数据量有100多条的一个循环,不过目前来看都没坚持到这个时间TIMER就已经停止了)
其中方法一是各自生成自己的静态页,方法2和方法3三层,数据库字段基本一样。方法4是B网站独有的。 展开
4个回答
展开全部
1).IIS回收资源可在应用程序池进行控制,指定时间 以及禁用回收
2).Timer 必须定义成全局静态 以防止被GC回收
3).对于Timer中出现的异常 是否有处理 再TimerCallBack中进行异常捕获
2).Timer 必须定义成全局静态 以防止被GC回收
3).对于Timer中出现的异常 是否有处理 再TimerCallBack中进行异常捕获
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其中有问题的Global.asax是直接复制没问题的Global.asax后添加了一个方法。
问题就出在这里,复制的时候是否有文件损失,或者是你后添加的方法有问题。
问题就出在这里,复制的时候是否有文件损失,或者是你后添加的方法有问题。
更多追问追答
追问
没有,主方法都是写在三层中的,这里面只是判断下时间然后直接调用方法名的,一共就几句话,主方法都在单页面调试过了,没有问题。还有就是注意了:只要第一次触发执行后都能在一段时间内正常执行的。
正常Global.asax的跟异常Global.asax的基本代码+操作数据库代码都一致,唯一的一个不同的方法基本都是在还没到要执行他的时候Global.asax已经停止了,所以应该不会是这个方法出错导致的。
追答
有没有考虑过是不是服务器的问题,跟你的网站无关。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的方法 在服务器建个页面 1分钟去刷新下你的网站 ~然后启动里面把IE加上 在IE默认页面里面写上你这个页面的地址,保证就算重启服务器也会打开IE,然后访问的地址是你新建的那个页面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
APS.NET版本一样吗?
追问
版本一样的3.5,那个异常的刚上传的时候其实是能正常运行的,里面的方法在执行周期调整后都能测试能通过!但就是过段时间后就会停止。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询