网上搜索了一下导致Asp.Net站点重启的原因,具体可以参考:http://blog.csdn.net/kaosini/article/details/8510087,其中第五条这样说

  修改aspx,master文件不一定会导致重启;但是每修改一次都会导致一次重新编译,重新编译次数达到15次之后会导致站点重启,重启原因是:

  Recompilation limit of 15 reached HostingEnvironment initiated shutdown

  于是我自己测试了下,停了动转静服务,在运行的项目里面,进行了如下操作

  1、对1个Asp.net文件修改了20次以上,发现并没有导致Asp.net站点重启

  2、对15个Asp.net文件进行修改,结果出现了Asp.net站点重启

  3、对20个html文件进行修改,发现并没有导致Asp.net站点重启

  于是我纳闷了,动转静导致的都是生成的html文件,并没有修改动态文件,为什么会导致站点重启呢,于是又谷歌了一番,终于又找到个有用的帖子《引起IIS下Asp.net应用程序重启的原因》,这个是翻译过来的文章,原文是:http://www.dotnetindia.com/2003/10/why_aspnet_rest.html

  里面的一条这样说道,一个文件夹里同时有很多文件发生改变,.NET系统对这些变化通知来不及反应,这时候可能会重启。比如在高PV时每次访问都生成一次;

  仔细想了下,导致我的站点重启的原因有可能是两个

  1、一个文件夹里同时有很多文件发生改变,.NET系统对这些变化通知来不及反应,这时候可能会重启。

  2、我Asp.net文件里面会include动转静生成的html文件,可能也被认为是Asp.net文件发生了变化,这个原因感觉是微乎其微,因为include动转静生成文件的asp.net文件不止15个,而且我把动转静的文件个数控制到15个以内的话,居然还是会出现重启的情况,虽然频率降低了。

  补充(2013.01.18):我特地试了一下方法1,对项目下的任意一个文件进行多文件的覆盖,连续执行n多次,结果发现站点果然重启了。但是好像没有明显的规律,有时候执行两三次会重启,有时候20多次照样不重启,所以不敢断言是文件更新造成的。