No Touch Deployment working with .NET 1.1, but not with 2.0

  • Thread starter Thread starter Greg K
  • Start date Start date
G

Greg K

I have a simple DLL that exposes a button and a label that is failing to run
under .NET 2.0. I'm using Apache as the WEB server. The final error is
"Microsoft.IE.SecureFactory: System.IO.FileNotFoundException: Could not load
file or assembly". Using Ethereal to watch the network traffic, the
following takes place;



1.. Request and successful transfer for the config file
2.. Request and successful transfer for the dll file (HelloWorld.dll)
3.. Request and 304 reply for the config file (yes a second time)
4.. Request and 404 reply for the DLL file (HelloWorld.DLL - DLL in
uppercase
The difference between .NET 1.1 and 2.0 is the 4th step.



When using IIS 5.1 on an XP Pro system, Ethereal shows the following;



1.. Request and successful transfer for the config file
2.. Request and successful transfer of the dll file (HelloWorld.dll)
3.. Request and 304 reply for the config file (yes a second time)
4.. Request and successful transfer for the DLL file (HelloWorld.DLL - DLL
in uppercase
Since IIS is case insensitive the same file comes down a second time starts
running.



Is there something new that needs to happen when using No Touch Deployment
with .NET 2.0?
 
Hi Greg,

Thanks for your post.

Yes, .Net1.0/1.1 has different Assembly URL probing as .Net2.0. .Net1.0/1.1
will probe for the URL with extention capitalized.(DLL). While .Net2.0
changed the probing extension to small letter.(dll). This has been
confirmed by our Fusion developer Junfeng Zhang in his blog link below:
"URL Case Sensitivity and Assembly Loading"
http://blogs.msdn.com/junfeng/archive/2005/03/20/399418.aspx#comments

So for case sensitive web server like Apache, we should take care of this.

Hope this helps

Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
 
Back
Top