title: Different behavior in Uri constructor (new Uri(Uri, String)) in two different projects
body: <p>I have two different projects which both use a common piece of code. One is an Azure Cloud Service web site and the other is a Windows Service. The function they both call is</p>
  
  <pre><code>private static Uri ConstructUriFromUriAndString(
          Uri endpoint,
          string path)
      {
          // This is where we encode the url path to be valid
          string encodedPath = HttpUtility.UrlEncode(path);
          return new Uri(endpoint, encodedPath);
      }
  </code></pre>
  
  <p>When I call this function from the windows service with a uri and the encoded string "images%2fblabla.html" then the AbsoluteUri property of the Uri is "uri/images/blabla.html", which I believe is the expected behavior.</p>
  
  <p>When I call this function from the Azure site with the same Uri and the same encoded string the AbsoluteUri property is "uri/images&amp;2fblabla.html", which my later http request is choking on.</p>
  
  <p>I've used "Go To Definition" in both cases and the both resolve to System.dll version 2.0.0.0. The windows service uses .NET 4 and the Azure site uses .NET 4.5. I don't think this is an issue since they both use the same System.dll assembly.</p>
  
  <p>How is it possible to call the same function with the same parameters and get back different results?</p>