代码改变世界

asp.net出现:当前标识(NT AUTHORITY\NETWORK SERVICE)没有对' '的写访问权限。

2010-10-14 13:18  ☆冷枫☆  阅读(480)  评论(0编辑  收藏  举报
        当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限


检查.net 安装环境一切正常,权限正常,仍然解决不了问题,总不能重装吧?最后终于在网上找到了解决方案。

运行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i -enable

系统会显示正在安装.net。稍后一切恢复正常。


配置错误:
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误信息: 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。

源错误:
行 24: 以标识传入的用户。
行 25: -->
行 26: <authentication mode="Windows"/>
行 27: <!--
行 28: 如果在执行请求的过程中出现未处理的错误,
源文件: D:\\web\\web.config 行: 26


显示其他配置错误:
在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 (D:\\web\\web.config line 39)

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.832; ASP.NET 版本:2.0.50727.832
IIS 里面都设置好了,而且如果在VS 2005环境下运行也不可以,同样的错误!
--------------------------------------------------------------------------------
原因:Machine.config里的allowDefinition="MachineToApplication"。

解决1:把allowDefinition设为:Everywhere。考虑到最好不要改动Machine.config文件,否则可能会引起其他错误。

解决2: <authentication mode="Forms"> 是应用级别的,不能在子目录级别的web.config内
设置,把它放在应用级别的web.config里,在子目录下用 <authorization>节来控制访问。


即: <system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>

根目录下的web.config:

<authentication mode="Forms">
<forms loginUrl="~/admin/login.aspx" name="login" />
</authentication>
<authorization>
<allow users="*" />
</authorization>

(解决3:把admin子目录配置为应用程序,应该就没错了,不过没有经过测试,需要测试后才能验证。)
1、若IIS中没有应用程序名,先创建,若还不行把C:\\WINDOWS //microsoft.net//work//v2.0.50727//CONFIG//machine.config中的所有 allowDefinition="MachineToApplication"改为allowDefinition="Everywhere"
2、在网站对应的虚拟目录上右键,选属性,然后在应用程序名后点创建。
我按他们说的找没找到,最终我理解就是
把你的虚拟目录指向web.config所在在文件夹,因为 web.config 的某些配置节只能出现在网站的虚拟目录跟目录中。
分析:没有把程序目录设为虚拟目录。
打开管理工具--Internet 信息服务,找到我的网站下的我的asp.net文件夹,右键选属性,在 "应用程序设置"这里,点一下 创建 ,给它分配和站点相同的程序池,确定,ok了
试过了,确定能解决。