GAC'd library not loading due to different versions of .NET

D

downloads4birdman

Trick Or Treat!

I have a web server setup to host both .NET 1.1 and .NET 2.0 web
applications. The applications are isolated by virutal directories
(VirtDir1 points to C:\Inetpub\wwwroot\app1, VirtDir2 points to C:
\Inetpub\wwwroot\app2, etc). The ASP.NET property for each virtual
directory is set to 1.1.4322 or 2.0.5xxxx based on which version the
application was build with.
Everything works fine...there is peace and harmony between
applications until....

I created using (VS 2005 - .NET 2.0) an HTTP Module in a .dll. Once
created, I created a strong name and associated the .dll with it. On
the server, I installed the .dll in the GAC. I then added a web.config
file in the website root directory (c:\Inetpub\wwwroot) which
identifies the HTTP Module, so that all .NET applications will
automatically use the module. My .NET 2.0 applications pick up the
module correctly and I get the expected the result. The 1.1
applications do not work correctly - I am given the error message

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.

and, to paraphrase, it tells me that the dll (assembly) (or one of
its assemblies) holding the module cannot be found.


It appears that since the application was built using the 1.1
libraries, only .NET 1.1 libraries will be included in resolving
external assembly references. Is this assumption correct? If so, how
do I remedy this?

Thanks in advance

DotNet Dude
 
B

bruce barker

net applications are loaded into an appdomain. only one version of an
assembly can loaded at time. if the appdomain is running 1.1 vm, an
attempt to load a 2.0 assembly will fail, as it has dependencies on
routines n the 2.0 clr.

you have two options.

1) create your httpmodule in 1.1 for it can be hosted by either enviroment.

2) convert all vdirs to 2.0. in most cases 2.0 vdirs can run 1.1
assemblies without a recompile.


-- bruce (sqlwork.com)
 
D

DotNet Dude

net applications are loaded into an appdomain. only one version of an
assembly can loaded at time. if the appdomain is running 1.1 vm, an
attempt to load a 2.0 assembly will fail, as it has dependencies on
routines n the 2.0 clr.

you have two options.

1) create your httpmodule in 1.1 for it can be hosted by either enviroment.

2) convert all vdirs to 2.0. in most cases 2.0 vdirs can run 1.1
assemblies without a recompile.

-- bruce (sqlwork.com)












- Show quoted text -

Bruce -

Thanks for the response.

I tried solution #2 and it seemed to work.

For solution #1, if I re-create the HttpModule in version 1.1, won't I
have the same issues with my 2.0 applications - since they would be a
"2.0 app domain" and wouldn't be able to see the 1.1 library. Or, do
you mean have 1.1 and 2.0 versions of the HttpModule co-exist in the
GAC. Would I need a different strong name for each version of the
library or not?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,577
Members
45,054
Latest member
LucyCarper

Latest Threads

Top