我觉得你首先还得找到速度慢的根源。
你可以做一张测试页面,然后把你内部一些方法打上日志并显示在该页面上,如果发现并非是代码导致,那么就要借助网络监听工具,例如wireshark等等,来查看网络环节是异常

解决方案 »

  1.   

    恩,新建了一个空的工程,不是后台慢,进到后台就要3、4秒,网络请求也看过了,检测的结果就是请求aspx页面一共需要3、4秒
      

  2.   

    你可以在 global.asax 的 Application_Start 方法中写一个日志,例如写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等等文件看看是不是仅有一行文字“这是预编译工具生成的标记文件,不应删除!”。如果不是,说明你根本没有真正完整编译网站,只会造成网站重启时超级慢。
      

  3.   

    应该是以WebSite方式发布的asp.net站点吧,第一次访问某个目录是有预编译过程所以慢,之后访问就快了。重启iis/重启程序池之后又需要重新预编译
      

  4.   

    我测试了下,确实网站在第一次启动后每次打开新页面都要被调用,这是不是说明有问题,凭你的经验能列举几个你遇到的吗?万分感谢!这在asp.net应用程序中,应该仅启动一次,然后几十分钟内很少再重新启动。重新启动应用程序,是asp.net的一个问题措施。应用程序有严重的BUG,会重启。如果web.config配置文件被改变,会重启。如果你修改bin下的文件或者除app_data以外其它目录下的可执行文件,会重启。如果在app_data目录以外其它目录下删除、锌新增子目录,会重启。......很多原因、数不清的原因会重启。重启时Session集合、静态变量内容、Application集合等等数据就丢失了(初始化了)。重启时,一堆东西需要初始化,你的“没有完整编译的文件”需要重新编译。检测到网站频繁重启,这只是一个开头,只能说明已经很明确地测试出网站运行的一个严重的BUG现象了。剩下的,就是需要你们自己研究一下哪一个操作必然引起asp.net进程重启。
      

  5.   

    重新启动应用程序,是asp.net的一个问题措施  --〉    重新启动应用程序,是asp.net遇到问题后的一个自动维护措施asp.net就是靠这个手段保证在无人值守的服务器上不断运行不垮的——其实不是不垮,是不断自动重启。但是这样不断重启,肯定无法保证网站应用程序的性能。你搜索“Session丢失”的相关文章,所有的这类问题都是重启造成的。有时候可能有些“正常的”理由,例如一个较大的网站,却没钱租空间,租了一个被网管设置为“IIS上当网站CPU利用率高于5%,或者所有100个站点内存占用综合高于800M,或者单个站点的连接数高于100个”就重启的空间,也会可能平均3分钟就重启一次。asp.net网站重启有很多原因。但是一般来说不会是特定页面每一次访问都会造成重启。如果你明确知道某个操作100%概率造成了重启,那么就直接针对这个操作查原因就行了。
      

  6.   


    万分感谢阿,根据你的猜测问题解决了,发现Application_Start确实启动多次,经过反复测试是因为某个写日志文件函数的问题,它直接往bin目录下写,导致iis每次对这个重启,真是畅快,搞了两天。
      

  7.   

    哥,帮我再看看我新的问题http://bbs.csdn.net/topics/390924095,真是谢谢!