刹那的菜鸟

博客园 首页 新随笔 联系 管理
 你可以在 global.asax 的 Application_Start 方法中写一个日志,例如写
C# code
 
?
1
2
3
4
5
void Application_Start(object sender, EventArgs e)
{
    var file = Context.Server.MapPath("~/App_Data/Log/Application_Start.txt");
    System.IO.File.WriteAllText(file, string.Format("{0} 启动 \r\n\r\n", DateTime.Now));
}

然后看看是不是频繁启动。如果频繁启动,你的程序可能有严重的bug,只不过被你的程序刻意掩盖了。

另外,此要地,如果你的asp.net网站发布到生产服务器上了,那么打开你的aspx或者ascx等等文件看看是不是仅有一行文字“这是预编译工具生成的标记文件,不应删除!”。如果不是,说明你根本没有真正完整编译网站,只会造成网站重启时超级慢。
我测试了下,确实网站在第一次启动后每次打开新页面都要被调用,这是不是说明有问题,凭你的经验能列举几个你遇到的吗?万分感谢!


这在asp.net应用程序中,应该仅启动一次,然后几十分钟内很少再重新启动。

重新启动应用程序,是asp.net的一个问题措施。应用程序有严重的BUG,会重启。如果web.config配置文件被改变,会重启。如果你修改bin下的文件或者除app_data以外其它目录下的可执行文件,会重启。如果在app_data目录以外其它目录下删除、锌新增子目录,会重启。......很多原因、数不清的原因会重启。重启时Session集合、静态变量内容、Application集合等等数据就丢失了(初始化了)。

重启时,一堆东西需要初始化,你的“没有完整编译的文件”需要重新编译。

检测到网站频繁重启,这只是一个开头,只能说明已经很明确地测试出网站运行的一个严重的BUG现象了。剩下的,就是需要你们自己研究一下哪一个操作必然引起asp.net进程重启。

posted on 2016-11-14 21:03  刹那的菜鸟  阅读(448)  评论(0编辑  收藏  举报