Share via


URL Case Sensitivity, Again

I discussed URL sensitivity issue back in March 2005 (https://blogs.msdn.com/junfeng/archive/2005/03/20/399418.aspx). In that post, I mentioned fusion probes assemblies with the extension capitalized (For example, https://foo/bar.DLL, instead of https://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. (https://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

  • Anonymous
    February 24, 2006
    "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.
  • Anonymous
    February 26, 2006
    hiiiiii
  • Anonymous
    March 08, 2006
    The comment has been removed
  • Anonymous
    March 08, 2006
    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. :-P