none
why does one process can only load one version of the .NET Framework CLR? RRS feed

  • Question


  • When two aps.net applications that runs on different versions of .net CLR are put in the same application pool in IIS6. An error occurs saying that only one version of .net CLR can be loaded by a process. I don't understand why.

    Any explaination is hightly appreciated. Thank you.
    Tuesday, July 1, 2008 11:01 AM

Answers

  • Well, if they would have provided this feature, they would have had to come up with a way for these hosts to interact with each other so they could divy-up the virtual memory address space between each other.  As well as enforce that certain threads only run in certain hosts and can execute code only in certain assemblies.  As well as having multiple jitted versions of an assembly if a thread executes code from both "new" and "old" format assemblies.  As well as requiring that these hosts have a guaranteed serialization compatibility so their client AppDomains can interact.  As well as providing a way for these hosts to each have their own .config file.

    They didn't.


    Hans Passant.
    • Marked as answer by Bruno Yu Thursday, July 3, 2008 3:33 AM
    Tuesday, July 1, 2008 4:47 PM
    Moderator

All replies

  • A process can have only one version of the CLR.  Post to forums.asp.net to ask about ways to mix versions.
    Hans Passant.
    Tuesday, July 1, 2008 12:32 PM
    Moderator
  • I know the way to mix multiple versions of CLR in asp.net. I just want to know why multiple version of CLR can not run concurrently in one process. That's why i didn't post the thread in forums.asp.net.
    Tuesday, July 1, 2008 3:34 PM
  • Well, if they would have provided this feature, they would have had to come up with a way for these hosts to interact with each other so they could divy-up the virtual memory address space between each other.  As well as enforce that certain threads only run in certain hosts and can execute code only in certain assemblies.  As well as having multiple jitted versions of an assembly if a thread executes code from both "new" and "old" format assemblies.  As well as requiring that these hosts have a guaranteed serialization compatibility so their client AppDomains can interact.  As well as providing a way for these hosts to each have their own .config file.

    They didn't.


    Hans Passant.
    • Marked as answer by Bruno Yu Thursday, July 3, 2008 3:33 AM
    Tuesday, July 1, 2008 4:47 PM
    Moderator