有时候,我们在调试ASP.net程序的时候,会很痛苦的碰到。某某组件访问被拒绝。这时候重起IIS,电脑注销都不起作用。这时候的错误信息一般类似如下的方式:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 访问被拒绝:“CSDN.Authentication”。
源错误:
行 196: <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 197: <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 198: <add assembly="*"/>
行 199: </assemblies>
行 200: </compilation>
源文件: c:/windows/microsoft.net/framework/v1.1.4322/Config/machine.config 行: 198
行 197: <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 198: <add assembly="*"/>
行 199: </assemblies>
行 200: </compilation>
源文件: c:/windows/microsoft.net/framework/v1.1.4322/Config/machine.config 行: 198
程序集加载跟踪: 下列信息有助于确定程序集“CSDN.Authentication”无法加载的原因。
=== Pre-bind state information ===
LOG: DisplayName = CSDN.Authentication
(Partial)
LOG: Appbase = file:///F:/MyDevelop/AD/Code/ADManageWeb
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: CSDN.Authentication
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication/CSDN.Authentication.DLL.
LOG: Attempting download of new URL file:///F:/MyDevelop/AD/Code/ADManageWeb/bin/CSDN.Authentication.DLL.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: CSDN.Authentication, Version=1.0.1965.30523, Culture=neutral, PublicKeyToken=null
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
其中最常见的原因是Indexing service服务引起的。解决方法就是停用Indexing service,或配置ASP.net 的临时目录不受Indexing service服务的影响。
配置ASP.net 的临时目录不受Indexing service服务的影响的步骤如下:
1、开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
2、展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,再在其下展开“System”节点,再在其下展开“目录”节点。
3、在计算机管理的右边我们可以看到配置的索引服务目录。
4、在“目录”节点上右击鼠标,选择“新建”--“目录”
5、在“添加目录”对话框中,路经输入框中输入 ASP.net 的临时文件目录。默认应该是:
c:/<WINDIR>/Microsoft.NET/Framework/<Version Number>/Temporary ASP.NET Files 目录。
<Version Number> 指你要处理的.net版本。
6、在“包含在索引中吗?”选项中,选择“否”
7、单击“确定”按钮
8、在“索引服务”节点上右键单击,重起索引服务即可。
LOG: DisplayName = CSDN.Authentication
(Partial)
LOG: Appbase = file:///F:/MyDevelop/AD/Code/ADManageWeb
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: CSDN.Authentication
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication/CSDN.Authentication.DLL.
LOG: Attempting download of new URL file:///F:/MyDevelop/AD/Code/ADManageWeb/bin/CSDN.Authentication.DLL.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: CSDN.Authentication, Version=1.0.1965.30523, Culture=neutral, PublicKeyToken=null
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
其中最常见的原因是Indexing service服务引起的。解决方法就是停用Indexing service,或配置ASP.net 的临时目录不受Indexing service服务的影响。
配置ASP.net 的临时目录不受Indexing service服务的影响的步骤如下:
1、开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
2、展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,再在其下展开“System”节点,再在其下展开“目录”节点。
3、在计算机管理的右边我们可以看到配置的索引服务目录。
4、在“目录”节点上右击鼠标,选择“新建”--“目录”
5、在“添加目录”对话框中,路经输入框中输入 ASP.net 的临时文件目录。默认应该是:
c:/<WINDIR>/Microsoft.NET/Framework/<Version Number>/Temporary ASP.NET Files 目录。
<Version Number> 指你要处理的.net版本。
6、在“包含在索引中吗?”选项中,选择“否”
7、单击“确定”按钮
8、在“索引服务”节点上右键单击,重起索引服务即可。
我的问题作一个项目,其中引用了第三方dll,在本地运行没有问题,但放到服务器上就抱错:访问被拒绝
首先我按照楼主的方法试验了一下,问题依旧,不论是停止索引服务还是对.net的
临时目录做处理,组件依然被拒绝访问.
于是我的解决方法是:将自己项目的dll和引用的dll,同时放到服务器上去,这样服务器上两个dll的更新时间是一样的,这样问题就解决了,不知道是什么原因,和时间有关系
另外,如果还不行,请考虑一下你引用的组件和你自己调试项目的版本问题,最好都是release版。
首先我按照楼主的方法试验了一下,问题依旧,不论是停止索引服务还是对.net的
临时目录做处理,组件依然被拒绝访问.
于是我的解决方法是:将自己项目的dll和引用的dll,同时放到服务器上去,这样服务器上两个dll的更新时间是一样的,这样问题就解决了,不知道是什么原因,和时间有关系
另外,如果还不行,请考虑一下你引用的组件和你自己调试项目的版本问题,最好都是release版。
“/WebApplication”应用程序中的服务器错误。
--------------------------------------------------------------------------------
对路径“G:/Inetpub/wwwroot/WebApplication”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“G:/Inetpub/wwwroot/WebApplication”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}/ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
--------------------------------------------------------------------------------
对路径“G:/Inetpub/wwwroot/WebApplication”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“G:/Inetpub/wwwroot/WebApplication”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}/ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 访问被拒绝:“LeagAcc”。
源错误:
行 196:<add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 197:<add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 198:<add assembly="*"/>
行 199:</assemblies>
行 200:</compilation>
源文件: c:/windows/microsoft.net/framework/v1.1.4322/Config/machine.config 行: 198
程序集加载跟踪: 下列信息有助于确定程序集“LeagAcc”无法加载的原因。
=== Pre-bind state information ===
LOG: DisplayName = localhost
(Partial)
LOG: Appbase = file:///c:/inetpub/wwwroot
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: localhost
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/2135a508/8d69a834/localhost.DLL.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/2135a508/8d69a834/localhost/localhost.DLL.
LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/bin/localhost.DLL.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: localhost, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 访问被拒绝:“LeagAcc”。
源错误:
行 196:<add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 197:<add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 198:<add assembly="*"/>
行 199:</assemblies>
行 200:</compilation>
源文件: c:/windows/microsoft.net/framework/v1.1.4322/Config/machine.config 行: 198
程序集加载跟踪: 下列信息有助于确定程序集“LeagAcc”无法加载的原因。
=== Pre-bind state information ===
LOG: DisplayName = localhost
(Partial)
LOG: Appbase = file:///c:/inetpub/wwwroot
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: localhost
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/2135a508/8d69a834/localhost.DLL.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/2135a508/8d69a834/localhost/localhost.DLL.
LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/bin/localhost.DLL.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: localhost, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
VS.Net 2003 下经常遇到,据说这是.Net的一个bug,并不是控件的问题.
曾经试过很多方法,重新注册(aspnet_regiis.exe -i), 清除缓存(我的文档下有个VSWebCache文件夹),删除bin目录下的dll重新增加引用并生成,重新启动IIS,乃至重新启动机器.....
上面的这些动作,有时候好使(特别是重新启动机器,呵呵)
解决方法:
1.关闭索引服务(或重新启动)
(A)可以在MS-DOS下输入 Net stop cisvc 命令禁止!
(B)可以通过进入 控制面板-〉管理工具-〉服务,找到Indexing Service并点击右键将其停止.
可能的原因:(断定是IIS和权限的问题)
1.集成window身份验证
右击"我的电脑"->"管理"->"服务和应用程序"->"Internet信息服务管理器"->"网站"->"默认网站"->"属性"->"目录安全性"选项卡->"身份验证和访问控制块"->"编缉"->选中"集成windows身份验证"(针对win2003系统,其它系统大体相同).
2.集成身份验证后,对匿名用户使用下列windows用户帐户, 用户名为机器名/IUSR_机器名,密码系统自动添加。此用户属于Guests用户组,不能更改。匿名访问 Internet 信息服务的内置帐户.
3.登录用户隶属于Debuger Group组和Adminstrator组(调试权限和对文件完全控制权限), ASPNET用户隶属于Administrator组(操作apsx文件权限)
4.在IE里 自动使用当前用户名和密码登录(要注销重新登录才有效)
"工具"->"Internet选项"->"自定义级别"->"自动使用当前用户名和密码登录"
5.检查“保持HTTP连接”复选框是否选中,如果没有,选中。
7.没有创建应用程序
控制面板——>管理工具——>Internet信息服务——>找到你的项目——>属性——》虚拟目录 选项,下面有一个 <应用程序名>,后面有一个<按钮>,看一下是创建还是删除,如果是创建,点击一下,按钮就会变为删除,然后保存.
上面方法还不能解决再试一下面方法:
1.需要在IIS中重新注册一下ASP.NET,在MS-DOS中运行:
C:/WINNT/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis.exe -i
或在程序里面的Microsoft Visual Studio .NET 2003->Visual Studio .NET 工具->Visual Studio .NET 2003 命令提示执行aspnet_regiis.exe -i
2.把Internet信息服务里web站点的ip地址改为全部未分配。(在此之前,确保你正确地安装了iis 、framework1.1(要包含asp1.1)、和执行了aspnet_regiis -i).
1.集成window身份验证
右击"我的电脑"->"管理"->"服务和应用程序"->"Internet信息服务管理器"->"网站"->"默认网站"->"属性"->"目录安全性"选项卡->"身份验证和访问控制块"->"编缉"->选中"集成windows身份验证"(针对win2003系统,其它系统大体相同).
2.集成身份验证后,对匿名用户使用下列windows用户帐户, 用户名为机器名/IUSR_机器名,密码系统自动添加。此用户属于Guests用户组,不能更改。匿名访问 Internet 信息服务的内置帐户.
3.登录用户隶属于Debuger Group组和Adminstrator组(调试权限和对文件完全控制权限), ASPNET用户隶属于Administrator组(操作apsx文件权限)
4.在IE里 自动使用当前用户名和密码登录(要注销重新登录才有效)
"工具"->"Internet选项"->"自定义级别"->"自动使用当前用户名和密码登录"
5.检查“保持HTTP连接”复选框是否选中,如果没有,选中。
7.没有创建应用程序
控制面板——>管理工具——>Internet信息服务——>找到你的项目——>属性——》虚拟目录 选项,下面有一个 <应用程序名>,后面有一个<按钮>,看一下是创建还是删除,如果是创建,点击一下,按钮就会变为删除,然后保存.
上面方法还不能解决再试一下面方法:
1.需要在IIS中重新注册一下ASP.NET,在MS-DOS中运行:
C:/WINNT/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis.exe -i
或在程序里面的Microsoft Visual Studio .NET 2003->Visual Studio .NET 工具->Visual Studio .NET 2003 命令提示执行aspnet_regiis.exe -i
2.把Internet信息服务里web站点的ip地址改为全部未分配。(在此之前,确保你正确地安装了iis 、framework1.1(要包含asp1.1)、和执行了aspnet_regiis -i).