PRB: Exceptions Occur When You Run ASP.NET Applications and Inoculan Antivirus Software

This article was previously published under Q309337
This article has been archived. It is offered "as is" and will no longer be updated.
This article refers to the following Microsoft .NET Framework Class Library namespaces:
  • System.Threading
When you use Visual Studio .NET to develop an ASP.NET Web application on a computer that is running Inoculan antivirus software, ASP.NET may throw a random exception when you run the application within Visual Studio. In most tested scenarios, the exception is of type System.Threading.ThreadAbortException.
After you first open the file, Inoculan writes back to a file (in an alternative NTFS file system stream). In this case, Visual Studio creates a dynamic-link library (DLL) in the Bin folder and issues the request to the .aspx page. While processing the request, the ASP.NET worker process loads the DLL. Inoculan then writes back to the DLL file, which triggers the notification that the file has changed. ASP.NET receives this notification and restarts the application. Because this occurs while the first request is still being processed, ASP.NET may not have enough state to finish processing the request, depending on the time-out setting. Thus, ASP.NET rejects the original request.
To resolve this problem, increase the delayNotificationTimeout attribute of the <httpRuntime> configuration section in the Web.config file. This value is set with the following entry in the Web.config file:
<httpRuntime delayNotificationTimeout="5" />				
The default value is 5 seconds, which is sometimes insufficient for specific hardware. To resolve the problem on your computer, you must increase the time-out value to a value that works for your hardware and computer speed, for example 60.
This is not a bug in ASP.NET or Visual Studio .NET, but a side effect of another product that is running on the same computer.
The following frames usually appear on the top of the exception stack:
System.Web.Compilation.CompilationMutex.WaitOne() +314System.Web.Compilation.PreservedAssemblyEntry.LoadDataFromFile(Boolean fApplicationFile) +41System.Web.Compilation.PreservedAssemblyEntry.GetPreservedAssemblyEntry				
kbreadme anti-virus

Article ID: 309337 - Last Review: 02/27/2014 21:10:28 - Revision: 2.3

Microsoft ASP.NET 1.0, Microsoft Visual Studio .NET 2002 Professional Edition, Microsoft Visual Studio .NET 2002 Enterprise Architect, Microsoft Visual Studio .NET 2002 Enterprise Developer, Microsoft Visual Studio .NET 2002 Academic Edition

  • kbnosurvey kbarchive kbconfig kbnofix kbprb kbreadme kbthread kbweb KB309337