URL Case Sensitivity, Again


I discussed URL sensitivity issue back in March 2005 (http://blogs.msdn.com/junfeng/archive/2005/03/20/399418.aspx). In that post, I mentioned fusion probes assemblies with the extension capitalized (For example, http://foo/bar.DLL, instead of http://foo/bar.dll.)


 


Turns out in .Net framework 2.0, we have a regression on http based LoadFrom, only repros if the web server is case sensitive.


 


This bug is first opened in MSDN feedback center on May 07, 2005. (http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=c5f277ef-8c9d-4bc0-b86a-f02d2ced5c92). Unfortunately it is only made to my attention after .Net framework 2.0 has shipped. It is fixed in the latest source tree since. To get the fix for .Net framework 2.0, you have to contact Microsoft Product Support. This is unfortunate. But it is the best we can do at this timeframe.


 


To workaround the bug, make sure the URL has the file extension capitalized.


 


It is not appropriate to discuss the technical detail on how we regressed. But suffice to say that it is related to moving the LoadFrom’s second bind to fusion.


 


It takes a while for us to repro this problem, as we literally have to setup a Unix box and Apache server, and configure the box properly. This is what happen when you are running  Windows 100%  24/7.

Comments (5)

  1. Marc Brooks says:

    "To get the fix for .Net framework 2.0, you have to contact Microsoft Product Support. This is unfortunate. But it is the best we can do at this timeframe."

    It most certainly is not BEST you can do.  We need a much more agile release process for the service packs and hotfixes in the .Net framework. Heck, to install the release candidate requires installing two hotfixes that _don’t even have viewable KB articles describing them_.  How can we be expected to use the framework when bugs are not documented and fixed for the general public to use.

  2. Zac Bowling says:

    You might remember me from your last case sensitivity post.

    Give me a jingle if need any help with that Unix/Apache box. 🙂

    Maybe you might want to try coLinux or maybe load up a VMWare player image with FreeBSD+Linux /w apache preloaded? I always keep fee images laying around my Windows boxs 🙂

    Maybe while your in Unix/Linux, maybe sprinkle on some Mono? (hehe… just thought I would ask being on of the Mono developers)

  3. Zac Bowling says:

    Another thought.

    You could create an IHttpHandler in ASP.NET or create an ISAPI filter (if you feel like some C++ today) that simply does some type of check to see if the filename you are looking for is exactly the same casing as the one you are passing in. If its not just return a 404 and if it is then just return the file. In the IHttpHandler just open the file and stream it back and in the ISAPI filter, just don’t filter :-).

    Even though, being a Mono developer, I personally prefer Unix/Linux over Windows, so I would make any kind of excuse to get to install any Unix/Linux server around me just to expose it to more people around me… but then I know what its like when you only need to get something working and doing something like that can be a pain. Maybe that IHttpHandler/ISAPI Filter idea might help. 😛