Parser Error Message: Access is denied【转】

PRB: Access Denied Error When You Make Code Modifications with Index Services Running

Article ID:329065
Last Review:June 25, 2004
Revision:3.0
This article was previously published under Q329065

SYMPTOMS

When you access a page after an AppDomain load, for example, when you modify the Bin directory or the Web.config file on computers running Microsoft Index Services, you may receive the following error message:

Server Error in '/MyWebApp' Application

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Access is denied: 'mydll'.

Source Error:

Line 169:   <add assembly=<System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>/>
 
Line 170:    <add assembly=<System.EnterpriseServices, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>/>
Line 171:    <add assembly=<*>/>
Line 172:    </assemblies>
Line 173:    
					
Source File: c:/winnt/microsoft.net/framework/v1.0.3705/Config/machine.config Line: 171
Version Information: Microsoft .NET Framework Version:1.0.3705.0; ASP.NET Version:1.0.3705.0
If you right-click the page in the browser, and then click View Source, you see that the HTML source code reveals additional information, including the following call stack.
[FileLoadException]: Access is denied: 'MyWebApp'.<BR/>
   at System.Reflection.Assembly.nLoad(AssemblyName fileName, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark&amp; stackMark)<BR/>
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Boolean stringized, Evidence assemblySecurity, StackCrawlMark&amp; stackMark)<BR/>
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark&amp; stackMark)<BR/>
   at System.Reflection.Assembly.Load(String assemblyString)<BR/>
   at System.Web.UI.CompilationConfiguration.LoadAssemblies(Hashtable original)<BR/>
[ConfigurationException]: Access is denied: 'MyWebApp'.<BR/>
(d:/winxp/microsoft.net/framework/v1.0.3215/Config/machine.config line 145)<BR/>
   at System.Web.UI.CompilationConfiguration.LoadAssemblies(Hashtable original)<BR/>
   at System.Web.UI.CompilationConfiguration.get_Assemblies()<BR/>
   at System.Web.UI.CompilationConfiguration.GetAssembliesFromContext(HttpContext context)<BR/>
   at System.Web.UI.TemplateParser.AppendConfigAssemblies()<BR/>
   at System.Web.UI.TemplateParser.PrepareParse()<BR/>
   at System.Web.UI.TemplateParser.Parse()<BR/>
   at System.Web.UI.TemplateParser.GetParserCacheItemThroughCompilation()<BR/>
   at System.Web.UI.TemplateParser.GetParserCacheItemInternal(Boolean fCreateIfNotFound)<BR/>
   at System.Web.UI.TemplateParser.GetParserCacheItemWithNewConfigPath()<BR/>
   at System.Web.UI.TemplateParser.GetParserCacheItem()<BR/>
   at System.Web.UI.ApplicationFileParser.GetCompiledApplicationType(String inputFile, HttpContext context, ApplicationFileParser&amp; parser)<BR/>
   at System.Web.HttpApplicationFactory.CompileApplication(HttpContext context)<BR/>
   at System.Web.HttpApplicationFactory.Init(HttpContext context)<BR/>
   at System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context)<BR/>
   at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
					

CAUSE

If you run Index Server (Cisvc.exe), then Index Server may rescan the Temporary ASP.NET Files directory while it requests a Microsoft ASP.NET page. Cisvc.exe then holds a lock on the Temporary ASP.NET Files directory for one to five minutes. The length of time of the lock depends on the size of the directory that causes the Aspnet_wp.exeprocess (or W3wp.exe process for applications that run on Microsoft Internet Information Services [IIS] 6.0) to not load the particular DLL.

RESOLUTION

If you do not use Index Server on the server, you can disable it. To do so, follow these steps:
1.Click Start, and then click Services.
2.Locate Indexing Service from the list of services, and then click Indexing Service Properties from the subform.
3.On the General tab of the Indexing Service Properties dialog box, in the Startup type drop-down item list, click Disabled.
4.Click OK.

If you use Index Server, you can exclude the Temporary ASP.NET Files directory from the folders that the Index Server scans. To do so, follow these steps:
1.Click Start, point to All Programs, point to Administrative Tools, and then click Computer Management.
2.Expand the Services and Applications node, expand the Indexing Service node, and then expand the System node.
3.Right-click the Directories folder, point to New, and then click Directory from the subform to open the Add Directory dialog box.
4.Click Browse, and then locate the Temporary ASP.NET Files directory. You typically find the Temporary ASP.NET files in the following path: c:/<WINDIR>/Microsoft.NET/Framework/<Version Number>/Temporary ASP.NET Files
Note<Version Number> is the version of .NET Framework installed on your computer.
5.Click No under the Include in Index? option buttons.
6.Click OK to close.
7.Close the Computer Management dialog box.
8.Restart the Indexing Services service.

MORE INFORMATION

Other software that is designed to scan directories at regular intervals may lock the files that are located in the Temporary ASP.NET Files directory in a manner that is similar to how the Indexing Service locks the files. Examples of such software include virus scanners and backup software. Microsoft recommends that you see the manufacturers' manuals for the individual software for information about how to disable or to exclude the Temporary ASP.NET Files from these services.

转载于:https://www.cnblogs.com/Bluehand/p/4091008.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值