A website in IIS is set to use an Application Pool that is set to use .NET Framework Version 4.0. This website fails to load DLLs compiled with for 4.0. Pages on this website outputting the framework version (System.Environment.Version) report 2.0 loaded.

Why is this site loading the 2.0 framework? How can it be configured to load the 4.0 framework?

The application pool has been recycled.
Other websites on this box are loading and running the 4.0 framework.


Per Microsoft:

"The version of the .NET Framework that an application runs on is determined as follows:

"If the version of the .NET Framework that the application was built against is present on the computer, the application runs on that version."

Was the website compiled to target .NET 2.0?

To verify the framework version and CLR version that is targeted, there is a utility, corflags.exe, that you may use. For the bin folder where the assemblies are located, run the following command:

for %i in (*.exe,*.dll) do corflags.exe %i  

It will display, among other things, the .NET Framework version that the assembly is targeting. Note that you may also use corflags.exe to modify the PE header of the assemblies to target the .NET 4.0 CLR version, but you are probably better off recompiling for .NET 4.0 in Visual Studio.

How to: Use an Application Configuration File to Target a .NET Framework Version

supportedRuntime Element in app.config


Corflags information:


Have you already checked the <compilation> directive under <system.web> in web.config?


Simply put, it dosn't work that way. Think of setting the app pool version as setting a default environment if nobody asks for anything else. If 2 apps are in a app pool and 1 uses 2.0 and 1 uses 4.0 it depends on who gets called first as to the version of the framework that runs in that app pool. The way that an admin can "fix" this (and you probably shouldn't since the app was likely targeted at 2.0) is by setting the supportedruntime in the application.config file (its under runtime) see< supportedRuntime> Element

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.