Consider the following scenario:
- You create a Microsoft ASP.NET 1.0 or ASP.NET 1.1 child
application that is nested under an ASP.NET parent application. For example,
the Web site contains the following structure:
- The Web.config file for the parent ASP.NET application
(http://contoso.com) contains an "<httpModules>" section that references
an HTTP module. Additionally, all the following conditions are true:
- The HTTP module is not a strong-named assembly.
Therefore, the HTTP module is not located in the global assembly
- The HTTP module is not in the Bin folder of the child
In this scenario, when you browse the child ASP.NET
application, you receive an error message that resembles the following:
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
Parser Error Message: File or assembly name
httpModuleName, or one of its dependencies, was not
Line 14: -->
Line 16: <add
Line 18: <compilation
represents the HTTP
module name. httpModuleType
represents the class
name and the assembly name of the HTTP module.
You also receive a
configuration error message if the parent ASP.NET application references any
HTTP handlers that are in the Bin folder.
This problem occurs because child ASP.NET applications
inherit the parent ASP.NET application settings that are in the Web.config
file. Therefore, when you browse a child ASP.NET application, it looks for the
parent application HTTP module in the child Bin folder. If the child
application cannot find the HTTP module, the application looks in the global
assembly cache. Because the HTTP module is not a strong-named assembly, the
HTTP module is not in the global assembly cache. Therefore, you receive the
error message that is mentioned in the "Symptoms" section.
To work around this problem, use one of the following
methods. Use the method that is most appropriate to the situation.
Method 1: Create a strong-named assembly
You can create an HTTP module that is a strong-named assembly, and
then add the assembly to the Web server global assembly cache. For more
information about how to create and use strong-named assemblies, visit the
following Microsoft Developer Network (MSDN) Web site:
Method 2: Copy the DLL assembly file to the child Bin folder
Manually copy the DLL assembly file for the HTTP module to the Bin
folder of the child ASP.NET application.
Method 3: Upgrade the applications to ASP.NET 2.0
You can upgrade the ASP.NET applications to ASP.NET 2.0. The
problem does not occur in ASP.NET 2.0 because of architectural improvements in
application configuration settings. For more information about how to upgrade
to ASP.NET 2.0, visit the following MSDN Web site:
has confirmed that this is a problem in the Microsoft products that are listed
in the "Applies to" section.
You cannot work around the error by removing the HTTP module
name or by clearing the HTTP module name in the Web.config file of the child
ASP.NET application. For example, the following Web.config statements do not
resolve the problem:
Example 1: You remove the HTTP module name
represents the name of
the HTTP module.
Example 2: You clear the HTTP module name
For more information about strong-named assemblies, visit
the following MSDN Web site:
For more information about the global assembly cache, visit the
following MSDN Web site: