|
漫谈asp.net之一: 常见错误 Access denied
在 asp.net 中,其中一个最常见的问题就是“访问被拒绝”(Access denied)。如:
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 访问被拒绝:“myApp”。
源错误:
行 256: <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 257: <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 258: <add assembly="*"/>
行 259: </assemblies>
行 260:
源文件: c:\windows\microsoft.net\framework\v1.1.4322\Config\machine.config 行: 258
另外还有一个 Access denied 的错误说是不能访问 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files 下的某个目录。产生这些错误的原因很多,主要的可能包括:Bin 目录或者 Web.config 被更改以及访问文件系统的权限不够。
如果 Bin 目录或者 Web.config 被更改,MSDN 网站上有文章说是因为 Microsoft Index Services(Indexing Service) 服务在运行。详细内容可以访问: PRB: Access Denied Error When You Make Code Modifications with Index Services Running 。
但是另外还需要注意一些别的问题,
检查 Bin 目录的文件系统访问权限。一般只要确保 Users 容器拥有“读取和运行”、“列出文件夹目录”和“读取”的权限就可以了。
如果提示说不能访问 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\... ,可以将 Temporary ASP.NET Files 目录的访问权限列表中添加 Everyone,并设置为拥有所有的权限。然后在访问一次此 Web 应用程序后,将 Temporary ASP.NET Files 目录的访问权限列表中将 Everyone 删除就可以了。
综上所述的方法,主要包括:
禁用或设置 Indexing Service 服务;
检查 Bin 目录的访问权限;
设置 Temporary ASP.NET Files 目录的访问权限。 |
Powered by Discuz! Archiver 4.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.032947 second(s), 2 queries |