简介
当我尝试浏览我的网站时,收到以下错误消息:
CS0016:无法写入输出文件'c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ www \ xxx \ yyy \ zzz \ abdll' - '目录名是无效'
详情
我的开发PC上有两个网站(虚构名称):
最近,我几乎经常在Web4上使用VS2012工作并且工作正常,但是前几天我尝试运行Web2并且上面显示了异常。
奇怪的是,路径的一部分(我上面用字母“zzz”替换)似乎指向德语路径,因为它是“\ de-DE” - 我不是用德语操作,所以我'我不知道从哪里得到这个想法。
有一件事几乎肯定是无关紧要的,但由于某些未知的原因,我觉得重要的是提到:我在Visual Studio 2012中使用性能分析工具,这个问题首次出现前一天,我不知道是否这可能会对我的电脑进行一些改动...... ??
尝试修复
互联网上有很多关于此问题的主题;一些线程成功结束,其中文件访问权限已被更改,而其他线程完成了一些有点绝望的声音...我已经完成了将我的PC上所有相关声音目录的NTFS权限与其同事的NTFS权限进行比较的过程。机器这仍然有效。不幸的是,在那里没有快乐。
我还卸载了asp.net 2.0并使用以下方法重新安装:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -ir
再一次,在那里也没有快乐。
我的Web4继续不受影响。
另外,仅供参考:在Win7 x64上使用IIS 7.5。
我现在转向更广泛的观众,希望将我目前的绝望状态转变为成功之一。
谢谢大家
格里夫
答案 0 :(得分:42)
在IIS管理器中,在“应用程序池”的高级设置中,确保“Process Model> Load User Profile”设置为“True”。
我有同样的问题。我尝试更改权限,禁用防病毒,创建新的应用程序池,以及重新安装.NET。我甚至创建了一个只有“Default.aspx”页面的新网站,并尝试查看该网站。即使该网站也有编译错误。最后,我注意到我的应用程序池(干净的测试站点和主站点)具有加载用户配置文件设置的非默认值“False”。我把它恢复为真,问题就消失了。
答案 1 :(得分:9)
使用ProcMon找到答案:
首先在用户的临时文件夹中创建临时asp.net文件,然后将其移动到此文件夹中。由于一些尚未知的原因,我的Web2站点(.NET 2 AppPool)的编译现在使用与我的Web4(.NET 4 AppPool)站点相同的文件夹。
我使用ProcMon识别“拒绝访问”的所有结果,并为IIS_IUSRS组授予了写权限(在一种情况下 - C:\ Users \ ASP.NET V4.0集成 - 修改权限)。
我不知道为什么编译使用“错误的”文件夹,我怀疑在某些情况下我可能过度提升了权限,但是现在它正在运行。
答案 2 :(得分:4)
如果上述答案没有为您解决,请检查您的环境变量(右键单击计算机 - >属性 - >高级系统设置 - >高级标签 - >环境变量
确保临时变量指向具有所有必要权限的文件夹。 (网络服务的完全访问权限,IIS_IUSRS)
注意:不要只检查顶部的两个变量,查看系统变量下的滚动菜单。您也可以在那里找到配置的变量。
答案 3 :(得分:4)
可能不是原因,但是在尝试使用Instrumentation方法运行VS 2010 Performance Wizard之后,我发生了这个错误。
我的DEV环境中的快速修复:将应用程序的应用程序池的标识更改为LocalSystem。