自己在网上找过解决方案,也试过设置alwaysRunning和Idletimeout 设置为0,但是没有效果,第一次访问页面都在3分钟左右,请问大家有什么类似的问题,是怎么解决的呢?在这里谢谢大家。
第一,确认发布release,2,排查js和css,看下到底是资源慢还是程序慢,3资源慢解决资源,程序慢:1是数据库,2是程序;一步一步的来,很容易解决的
感谢回答!
仅仅是第一次访问慢?
是的,就是发布后第一次访问特别的慢,之后就很快了 ,而且这个问题是突然出现的,我这个服务器IIS其它站点访问都没问题,就唯独这个站点奇慢无比。
@heyanan: 这就是asp.net的特性啊,如果长时间不访问,第一次访问也会慢,要不你就自己,添加一个没什么意义的空页面,然后自己跑个服务,每隔多长时间访问以下这个空页面。。。
@顾晓北: 但是我之前没有遇到过这种情况呀,这个问题是突然出现的,而且发布之后每个页面第一次访问都要3分钟啊,这样也太奇怪了。
@heyanan: 首次启动需要加载太多资源吧?
@顾晓北: login页面没多大资源呀,很小很小的。
@heyanan: 不是login页面,不是什么页面,就是整个站点。。。
@顾晓北:噢。
用了EF吗
没用ef
编译语言部署后需要编译一次.你可以认为是开机.开机总是要时间.
所以你可以在发布后访问一次.这样对用户来说是没有感觉的
可是每次发布都要去全部点一遍页面这花费的实价太久了,不是可取的办法。
@heyanan: 不用全部点一遍.随便打开一个就可以了.楼下说的确实..首页打开要3分钟.这个得分析一下了.不过这种级别的问题应该是挺容易发觉的.在收的每一步加定时间.找到耗时长的代码
@吴瑞祥: 恩,谢谢,是要全部都排查一次。
是不是web程序加载了一些被墙掉的外链资源,如js,字体等。用chorme浏览器审查一下看那些资源加载时间长或超时。。排除一下。。。
这个可以排除,我们程序没有外链资源,之前访问速度基本上都在1秒左右加载出来。
1 服务器破
2 网络问题
3 Application_Start里面做了太多事情?
或者你硬盘坏了
服务器还是不错的,毕竟是大公司,原先我也怀疑是网络问题,所有叫客户公司的IT去排查过,反馈是一切很正常,Application_Start做的也不是很多,如果Application_Start做的太多的话,那么之前也应该很慢才对。
@heyanan: 是不是硬盘坏道了,你把发布文件夹换一个试试
第一次访问页面都在3分钟左右,这个还真不一定全是IIS的问题。需要Profile看看你的应用程序第一次启动初始化的东西是否太多了,我碰到过相似的问题,后来改造程序,将常见的数据字典访问改造成延迟加载搞定。
恩,是该全部排查一下,只是我很纳闷,为什么之前一年多每次更新都很正常,最近这次更新就突然那么慢了。这次更新就注释了后台的一句代码。
对,第一次就是很慢的。
感谢回答!
你写个hello world的站点放在iis下试下。
感谢回答!
把IIS的预加载设置为true 看看行不行
站点右键->管理网站->高级设置->预加载已启用 ->true
恩,我试试,谢谢!
我遇到过一次 不是是90秒
原因未知
而且慢在了 非手写代码的位置 也就是说 没有任何介入点
然后么 换了一个服务器 这问题好像和程序无关 要不你也重新建立一个应用程序池 换个站点
重新建立过站点,还是一样。
@heyanan: 逐行记录日志 看时间消耗在哪儿
还原回之前的版本 还是访问慢 那就不是代码的问题~ 如果之前的版本访问快 那就是新加的代码有问题。这种事情需要一步步排除原因,找到根本问题。
出现这个问题后,我立马恢复了之前的版本,还是一样很慢。
我的站点如果长时间没人访问 进程死掉了 第一次访问需要30秒 你这3分钟 太可怕了
而且这个事情,还是突然发现的,我都不知道错误在那个地方。
请问楼主最后是怎么解决的,打印日志发现是Application_Start完成后到home/index页面耗时较长