IIS Temporary ASP.NET Files拒绝访问解决方案(运维网)
也许是碰到的问题还不够多, 也许是以往的有过于顺利之嫌, 今天又碰到了一个新问题 ... 网站做的差不多了, 兴冲冲的给朋友发了个 RC1, 请求帮忙测试 ...所需要的组件都是按照空间基本配置来的, 而且在 Vista + IIS7 + IE7 + SQL2005 和 Windows 2003 + IIS 6 + IE6 + SQL2000 两种环境下都已经进行了测试, 想必不会有什么大问题 ...
但蹊跷的事还是发生了, 至今我也不知道是因为什么发生的 ...
打开页面时总是报错:
error CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\...\xxxxxx.dll' -- '拒绝访问。 '
第一反应是 该文件在使用中 但查来查去 不会呀 ...
当时曾萌发了一种冲动: 把那个源文件删掉 看看行不行 ... 很快 这个愚蠢的想法就被自己否定了 因为 那是编译顺序中的第一个源文件 删掉这个不困难 要是后面的还这样呢 总不会让我把所有的源文件都删了吧 那还玩儿什么劲呀 ...
让朋友看看那个目录下有没有传说中的 dll 文件 一看 呆了 没有 ...
看来是编译过程中出现的问题 ...
注意到了这几个字: Could not write to output file
为什么无法写入呢 直觉在说: 肯定是权限的问题 ...
但是 需要什么权限呢 又该在哪儿有这个权限呢 ...
ASP.net 自然需要 Network Service 的权限 ( 在 ASP.Net 1.0 是 ASPNet, 1.1 以上是 Network Service )
但这个权限应该给谁呢
想来想去 只有 临时文件目录了
问朋友最近改没改系统环境变量 答 只添加了 JDK 的环境变量 似乎和问题没有关系 ...
我也不敢轻举妄动 只是建议朋友试一下 将 Windows\Temp 的 Network Service 帐户赋予了完全控制的权限 ...
"能了"
感觉得出他的兴奋 ...
问题解决了 ...
总结:
可能会由于系统 TEMP 或 TMP 变量指向的文件夹不存在或者权限不足, 编译器生成的临时文件放在 TEMP 或 TMP 环境变量指向的文件夹, 然后复制到 Temporary ASP.NET Files 目录下.
解决方案:
1. 在 %Systemroot% 下创建一个目录, 命名为 Temp. (如果已经存在该目录, 此步可略过)
2. 将该目录的 aspnet 用户帐户(相对于 .NET Framework 1.0 来说) 或者是 NETWORK SERVICE 用户帐户(相对于 .NET Framework 1.1 以上版本)赋予完全许可权限.
3. 将系统环境变量 TEMP 指向 %SystemRoot%\TEMP .
4. 将系统环境变量 TMP 指向 %SystemRoot%\TEMP .
5. 如果有必要, 在开始——〉RUN 中输入 iisreset 重置 Internet Information Services (IIS).
6. 如果有必要, 重启计算机.
页:
[1]