来源:http://www.jzxue.com/fuwuqi/fuwuqijiqunyuanquan/201108/19-8539.html
ASP.NET相对于ASP,设置权限方面有点不同,有一点儿设置错了都运行不到。在网上搜索到的都是很垃圾的答案,没有一个用得到的,下面是我自己设置并从中遇到的问题摸索后得到的经验,给大家分享。
ASP.NET需要用到USERS组的权限,因为我也遇过很多次自己设置了权限之后发现网站运行不了,很郁闷。下面根据出现的问题,一点点解决,让你的ASP.NET运行起来。。
问题一:
未找到路径“C:\”的一部分。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IO.DirectoryNotFoundException: 未找到路径“C:\”的一部分。
解决:
在C盘加上Users组读取权限即可
本人试过:在C盘加上Users读取权限后可以访问了,但出于服务器安全问题,我又把UserS组去掉了(想到应该C盘下面还要一些文件夹要加入UserS权限即可)。去掉USERS组后,相继的问题以不同的错误方式显示出来了,如下面讲到的问题,然后再一一解决。
问题二:
页面弹出登录窗口点取消后出现:HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
或者出现 HTTP 401.1错误
解决:
一,先要检查你的“身份检证和访问控制”中"对匿名使用下列windows用户账号”中的用户密码是否正确,还有检查你的网站 右键单击-权限中有没有加入此中用。
第一种方法试过都还是这的话,就看文件夹的权限设置了
在windows上加上Users权即可
问题三:
如果浏览到你整个网站出现乱码
解决:
那应该在 c盘 windows 加上users组的 读取权限即可
问题四:
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0016: 未能写入输出文件“c:\windows\Microsoft.NET\work\v1.1.4322\Temporary ASP.NET Files\root\345513e7\86f1794a\fvmzvzp7.dll”--“拒绝访问。 ”
解决:
应该在 c盘 windows下的temp 加上Users组的读、写、修改的权限即可
问题五:
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: 编译器失败,错误代码为 128。
解决:
应该在 c盘 windows下的System32 加上Users组的读的权限即可
问题六:
运行时错误
说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。
详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
解决:
在所在站点右键点击-权限 加上 IIS_WPG组的读权限即可
总 结:
windows temp System32 都需要users 的权限
windows读 temp读,写 System32读
站站权限要加上IIS_WPG读取权限
所以服务器的安全性也会低了很多,呵呵,,
问题7
在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码
在VS2005编译网站内置环境编译网站的时候出现” 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码 “这个错误,到网上baidu了一下,有下面的解决方案:
修改该目录的权限,加上“NETWORK SERVICE”,让它对该目录有控制权限。
修改网络/IIS/IIS服务的缺省账户.htm">IIS服务的缺省账户为“本地系统”
经验证,方法二可行,方法一失败。但是方法二会导致IIS运行不安全,所以这种方法不太合适。
我照着方案试了下,都没有成功,突然想到昨天因为杀毒,装了mcafee,查看mcafee的日志,果然有一下几条:
C:\Program Files\Internet Explorer\iexplore.exe \REGISTRY\MACHINE\SOFTWARE\Classes\.torrent\@ 防病毒最大保护:禁止更改所有文件扩展名的注册
c:\windows\system32\inetsrv\w3wp.exe C:\WINDOWS\TEMP\wda3zurp.dll 通用最大保护:禁止在 Windows 文件夹中创建新的可执行文件
应该就是这里的毛病了,把上两条规则删掉,编译成功:)
问题8
错误 1 “ASP.login_aspx.GetTypeHashCode()”: 没有找到适合的方法来重写 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clim\22c580cf\181f2416\App_Web_iiv2pnyq.8.cs
错误 2 “ASP.login_aspx.ProcessRequest(System.Web.HttpContext)”: 没有找到适合的方法来重写 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clim\22c580cf\181f2416\App_Web_iiv2pnyq.8.cs
错误 3 “ASP.login_aspx”不会实现接口成员“System.Web.IHttpHandler.IsReusable” c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clim\22c580cf\181f2416\App_Web_iiv2pnyq.8.cs
解决方法:检查方法名、类名、名称空间前后是否一致。