项目调试时候,出现其中用到的一个组件“访问被拒绝”的解决方法(.net的一个BUG)

有时候,我们在调试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
程序集加载跟踪: 下列信息有助于确定程序集“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、在“索引服务”节点上右键单击,重起索引服务即可。
我的问题作一个项目,其中引用了第三方dll,在本地运行没有问题,但放到服务器上就抱错:访问被拒绝

首先我按照楼主的方法试验了一下,问题依旧,不论是停止索引服务还是对.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 帐户,选中所需访问权限对应的框。
配置错误 
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 
分析器错误信息: 访问被拒绝:“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).
好的,我来举一个详细的.NET项目开发经验例子。 假设我们正在开发一个电商网站,我们使用.NET框架来实现。这个项目需要一个后台管理系统和一个前台网站。 1. 需求分析 首先,我们需要进行需求分析,确定项目的功能和需求。我们需要考虑以下几个方面: - 后台管理系统:管理员需要登录后台管理系统,管理商品信息、订单信息、用户信息等。 - 前台网站:用户可以浏览商品、下单购买商品、查询订单状态等。 2. 技术选型 在确定了项目的需求后,我们需要根据需求来选择合适的技术。对于这个项目,我们选择以下技术: - ASP.NET MVC框架:用于开发前台网站。 - ASP.NET Web API框架:用于开发后台管理系统的API接口。 - Entity Framework:用于管理数据库。 - Bootstrap:用于前台网站的UI设计。 3. 架构设计 在确定了技术选型后,我们需要进行架构设计。我们采用的架构是三层架构,分别是: - 表现层:使用ASP.NET MVC框架开发前台网站。 - 业务逻辑层:处理前台网站的业务逻辑,如商品的展示、购买等。 - 数据访问层:使用Entity Framework管理数据库,提供数据访问接口。 4. 开发实现 在确定了架构设计后,我们就可以开始开发实现了。我们采用敏捷开发方法,每个迭代的周期为两周。 在每个迭代中,我们会完成以下几个任务: - 完成一部分功能的开发。 - 进行单元测试和集成测试。 - 完成代码的Review和重构。 - 完成文档的编写。 5. 测试和部署 在完成开发后,我们需要进行测试和部署。我们采用的测试方法是自动化测试和手动测试相结合。自动化测试使用Selenium进行自动化测试,手动测试由测试人员进行。 在完成测试后,我们将代码部署到生产环境中。我们使用Azure云服务进行部署,并使用CDN进行静态资源的加速。 6. 运维和维护 在项目上线后,我们需要进行运维和维护。我们使用Azure云服务进行运维,定期进行数据备份、性能优化等。对于出现Bug,我们会及时进行修复,并进行版本管理。同时,我们会定期进行系统更新和升级,以确保系统的稳定性和安全性。 以上就是一个.NET项目开发经验例子,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值