了解.net平台的兄弟都知道,.net也是采用动态编译的
也就是说我们常说的build生成的dll只是中间代码
而在web第一次请求的时候才是真正意义上的编译生成二进制代码
这也就是为什么刚编译完第一次打开web页面的时候会比较慢的原因

好了,闲话少扯
今天一个兄弟问我,为什么他开发环境打开编译后的页面越来越慢
下面是我的解决方案:
1.关掉inetinfo.exe的进程
2.关掉aspnet_wp.exe
3.关掉打开的visual studio
4.清掉%SystemRoot%\Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files文件夹下的所有文件。
%SystemRoot%指的是你的系统windows文件夹的路径,一般默认的是C:\WINDOWS\
整个清除过程可能会比较慢,具体时间和目录下文件夹大小有关。
清除完之后,第一次打开还会比较慢,但是以后编译后的打开会快一些。

下面是详细的解释
当我们第一次请求的时候,也就是正式编译的时候,dotnet会写一些临时文件在这个文件夹下。
这个本人验证过,在第一次请求的时候,去关注文件夹的变化。
对于部署在server已经上线的Web Application是不会存在这样的问题的。
而在我们的开发环境下,由于经常要build,经常第一次请求,所以时间久了,这个文件夹就会变得很大。
像我现在在做的项目,源文件和目标文件的大小有4G,那么,写到这个文件夹里的文件就有上百兆。
我们可以去关注下,在选择“附近到进程”操作之后加载的程序集,就是在这个路径下。

不知道有的兄弟,会不会想,要经常手动去清这些文件,岂不是很麻烦?
哈哈,想省事的兄弟,可以写个批处理程序来做这个操作。
这里,我想介绍另一种方法来提升速度。
我们都知道,在我们可以控制的存储单元中,内存的访问速度是最快的。
如果,我们可以把这些临时文件放到内存中,就会成倍地提高速度。

1.安装RamDisk
2.安装好后,设置Debug 输出的Temp 目录为内存盘的path, 不再使用原来预置的 Temporary ASP.NET Files,只需要通过修改 Web.Config 文件中的
  <compilcation debug=”true”> 一般情况是这样的
修改为   <compilcation debug=”true” tempDirectory=”R:\”>
保留原来属性,新加一个 tempDirectory 指定内存盘的path
实践检验,可以花费时间的差距可以到一个数量级。
扩展阅读:http://msdn.microsoft.com/en-us/library/ms366723.aspx

Temporary ASP.Net Files探究的更多相关文章

  1. 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\106f9ae8\cc0e1

    在本地开发环境没问题,但是发布到服务器出现:未能写入输出文件"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.Ne ...

  2. 转发 win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 解决方案

    win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NE ...

  3. 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\41c191fd\ff9345c5\App_Web_login.cshtml.65793277

    本地开发环境没问题,但是发布到服务器出现问题或则直接在IIS上修改东西就给我抛出以下错误: 未能写入输出文件"c:\Windows\Microsoft.NET\Framework64 \v4 ...

  4. 没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写访问权限 的解决方案

    问题情况: 在64位机器上运行Web服务,然后在配置好之后测试访问的时候出现如下提示:

  5. [Bug]没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写访问权限

    问题 环境WIN8.1 x64,新安装的vs与iis,在部署网站时,出现该异常信息.本地机作为测试机,就部署一个站点进行测试,没想到出现这个错误. 解决方案 如果你访问上面的那个路径,你会发现并没有那 ...

  6. 【转载】错误 CS0016: 未能写入输出文件“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/.........dll”--“拒绝访问。 ”

    win7中安装asp.net的问题 编译器错误信息: CS0016: 未能写入输出文件问题解决办法 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地 ...

  7. Could not write to output file 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\xx'

    1.清了C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files 2.给上述文件夹EveryOne和IIS_Use ...

  8. 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS2\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files”的写访问权限。

    卸载了域控制器之后,IIS出现“当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS2\Microsoft.NET\Framework\v4.0.30319 ...

  9. CS0016: 未能写入输出文件“c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\data\34aae060\b7daa87d\App_Web_addadvice.aspx.cdcab7d2.ekhlcbjd.dll”--“目录名无效。 ”

    产生原因: 应用程序运行时产生的临时文件需要存放到c:"windows"temp 文件夹下 而运行基于microsoft .net framework 框架下的应用程序 需要对te ...

随机推荐

  1. LCA 算法(二)倍增

     介绍一种解决最近公共祖先的在线算法,倍增,它是建立在任意整数的二进制拆分之上.   代码:   //LCA:Doubly #include<cstdio> #define swap(a, ...

  2. F - Friends ZOJ - 3710(暴力)

    题目链接:https://cn.vjudge.net/contest/280949#problem/F 题目大意:给你n个人,然后给你m个关系,每个关系输入t1, t2 .代表t1和t2是朋友关系(双 ...

  3. 【转载】maven pom详解(2)

    setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件:而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和li ...

  4. Linux信号(signal)机制【转】

    转自:http://gityuan.com/2015/12/20/signal/ 信号(signal)是一种软中断,信号机制是进程间通信的一种方式,采用异步通信方式 一.信号类型 Linux系统共定义 ...

  5. make distclean

    清空bin目录make dirclean 清空所有相关的东西,包括下载的软件包,配置文件,feeds内容等make distclean 这个命令会删除feeds目录及其下面的所有的文件,直接结果就是运 ...

  6. python2脚本批量转成python3

    #查看 模块的安装路径 import tools print (tools.__file__) #进入cmd,然后python 2to3.py -w 需要批量转换的文件所在的路径#参考:http:// ...

  7. PHPWeb开发相关知识

    转载:https://blog.csdn.net/wj610671226/article/details/78426698 正则表达式 作用:分割.查找.匹配.替换字符串 分割符:正斜线(/).has ...

  8. redis 命令远程批量删除keys

    1.首先在电脑上装上 redis 客户端; https://www.cnblogs.com/feijl/p/6879929.html 2.安装成功后,进入 redis-cli 客户端目录; 连接 re ...

  9. ConvertUtils.register的作用

    BeanUtils的populate方法或者getProperty,setProperty方法其实都会调用convert进行转换 但Converter只支持一些基本的类型,甚至连Java.util.D ...

  10. VMware下三种网络连接模式

    VMware下三种网络连接模式 Bridged(桥接模式) 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问该类网段内任何一台机器. 桥接网络环境下需要做到: 手动 ...