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& stackMark)<BR/>
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Boolean stringized, Evidence assemblySecurity, StackCrawlMark& stackMark)<BR/>
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& 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& 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)
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.
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. |