title: POSTing data to WebApi after update to 5.1.0 fails
body: <p>I have an web app that use webapi for loading / saving data
  All used to work ok/
  Today I found that there is an updated to ASP.NET MVC / webapi, and I installed the update
  But after that POSTing data with jquery no longer works. 
  I made no change either in client code or in webapi controller.</p>
  
  <p>My typical POSt statement looks as below:</p>
  
  <pre><code>showProgress(true, self.PanelID(), 'Saving...')
  j$.ajax({
      type: "POST",
      url: uri,
      data: dataObj,
      error: function (jqXHR, status, error) {
          showProgress(false);
          GLOBAL.setMessage(self, 'Error saving ' + opType + '&lt;br&gt;' + error, true);
      },
      success: function (data, status, jqXHR) {
          showProgress(false);
          if (status === 'success') {
          GLOBAL.setMessage(self, opType + " saved ok");
          //....
  </code></pre>
  
  <p>The $.ajax code gets the following error</p>
  
  <pre>
  "An error has occurred."
  
  ExceptionMessage
      "This method or property is not supported after HttpRequest.Form, Files, InputStream, or BinaryRead has been invoked."
  
  ExceptionType
      "System.Web.HttpException"
  
  StackTrace
  at System.Web.HttpRequest.GetInputStream(Boolean persistEntityBody, Boolean disableMaxRequestLength) 
  at System.Web.HttpRequestWrapper.GetBufferedInputStream() 
  at System.Web.Http.WebHost.SeekableBufferedRequestStream..ctor(HttpRequestBase request) 
  at System.Web.Http.WebHost.HttpControllerHandler.c__DisplayClass11.b__b() at System.Web.Http.WebHost.HttpControllerHandler.LazyStreamContent.get_StreamContent() at System.Web.Http.WebHost.HttpControllerHandler.LazyStreamContent.CreateContentReadStreamAsync() at System.Net.Http.HttpContent.ReadAsStreamAsync() at System.Net.Http.HttpContentExtensions.d__0`1.MoveNext() 
  --- End of stack trace from previous location where exception was thrown --- 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
  at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 
  at System.Web.Http.ModelBinding.FormatterParameterBinding.d__0.MoveNext() 
  --- End of stack trace from previous location where exception was thrown --- 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 
  at System.Web.Http.Controllers.HttpActionBinding.d__0.MoveNext() 
  --- End of stack trace from previous location where exception was thrown --- 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 
  at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext() 
  --- End of stack trace from previous location where exception was thrown --- 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
  at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 
  at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext()"
  </pre>
  
  <p>These are the nuget packages from my solution</p>
  
  <pre>
    package id="Microsoft.AspNet.Mvc" version="5.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.Razor" version="3.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.SignalR.Client" version="2.0.1" targetFramework="net45" 
    package id="Microsoft.AspNet.Web.Optimization" version="1.1.2" targetFramework="net45" 
    package id="Microsoft.AspNet.WebApi" version="5.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.WebApi.Client" version="5.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.WebApi.Core" version="5.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.WebApi.HelpPage.VB" version="5.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.WebApi.OData" version="5.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.0" targetFramework="net45" 
    package id="Microsoft.AspNet.WebPages" version="3.1.0" targetFramework="net45" 
    package id="Microsoft.Bcl" version="1.1.6" targetFramework="net45" 
    package id="Microsoft.Bcl.Build" version="1.0.13" targetFramework="net45" 
    package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" 
    package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" 
    package id="Microsoft.Net.Http" version="2.2.18" targetFramework="net45" 
    package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" 
  </pre>
  
  <p>Does anyone knows what could be the problem? Any idea on how to fix it?</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>Sample controller code:</p>
  
  <pre>
  
  
  
  Public Class ImportController
      Inherits ApiController
  
      
      
      Public Function SaveImportSession(sessid As string,  entity As SIImportSessionDTO) As HttpResponseMessage
  
          Try
              InspectionData.SaveImportSession(sessid, entity)
              Dim response = Request.CreateResponse(HttpStatusCode.Accepted)
              Return response
          Catch ex As HttpResponseException
              Throw
          Catch ex As Exception
              Throw New HttpResponseException(Request.CreateResponse(Of String)(HttpStatusCode.InternalServerError, ex.Message))
          End Try
      End Function
  
  </pre>
  
  <p>I'm using only attribute-based routes, and this is my webapi route config</p>
  
  <pre>
  Public Shared Sub Register(ByVal config As HttpConfiguration)
  
          config.MapHttpAttributeRoutes()
  
          config.Routes.MapHttpRoute( _
              name:="DefaultApi", _
              routeTemplate:="api/{controller}/{id}", _
              defaults:=New With {.id = RouteParameter.Optional} _
  </pre>
  
  <p>The problem, my server side code is not even reached, something else on the pipeline throw the exception</p>
  
  <p>Thanks</p>