I've more than one ASP.NET 2.0 web site on IIS 6 and Windows Server 2003.
Each site reference some DLLs: design, logic and so on.
Each site is on a different ApplicationPool with default configuration about recycling techniques.

Every DLL is strong named (not delayed) and has a version that never changes (2.0.0.0), all DLLs are placed in GAC.

After I update a DLL in GAC (ie. MyLibrary.dll) that has changed in something (method, classes..) for the use in web-site "A", and after recycling only the "A" application pool, when I try to access to web-site "B" that reference the same DLL I get the common error about that DLL:

> 
> The located assembly's manifest
>  definition does not match the assembly
>  reference. (Exception from HRESULT:
>  0x80131040)
> 
> 
> 

Of course nothing is changed in DLL rather than code, same strongkey, same version, culture. The error disappear over recycling "B" application pool, of course.

What can generate a strange, **RANDOM** (I've to say!), behavior? There's something more, like hashing, that it's used to compare assemblies?

Addendum
--------

* [Perpetualcoder](https://stackoverflow.com/users/37494/perpetualcoder) asked me how DLLs are referenced, if with full qualified name, I think it is, here a line of web.config:

> 
> assembly="MyNamespace.MyComponent,
>  Version=2.0.0.0, Culture=neutral,
>  PublicKeyToken=1234567890ASDFGH"
> 
> 
>