Nope, Mono 3.0 doesn't contain the method GetBufferlessInputStream in the class System.Web.HttpRequest, see:<div><br></div><div><a href="https://github.com/mono/mono/blob/master/mcs/class/System.Web/System.Web/HttpRequest.cs">https://github.com/mono/mono/blob/master/mcs/class/System.Web/System.Web/HttpRequest.cs</a></div>
<div><br></div><div>This method was introduced in .NET 4.0 and is not to yet implemented in Mono. </div><div>Please open an issue for it, a patch/pull request to solve the issue would be a very welcome addition.</div><div>
<br></div><div>Fun,</div><div><br clear="all">Rafael "Monoman" Teixeira<br>---------------------------------------<br>"The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' (I found it!) but 'That's funny ...'"<br>
Isaac Asimov<br>US science fiction novelist & scholar (1920 - 1992)<br>
<br><br><div class="gmail_quote">On Thu, Oct 25, 2012 at 12:51 AM, Daniel Lo Nigro <span dir="ltr"><<a href="mailto:lists@dan.cx" target="_blank">lists@dan.cx</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for your reply.<div><br></div><div>I found that my app is referencing version 2.0.0.0 of System.Net.Http.dll, probably because I'm only using .NET Framework 4.0 (not 4.5) on my Windows machine. I created an assembly binding in my Web.config to redirect to the newer version:</div>

<div><br></div><div><div><font face="courier new, monospace">      <dependentAssembly></font></div><div><font face="courier new, monospace">        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" /></font></div>

<div><font face="courier new, monospace">        <bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0" /></font></div><div><font face="courier new, monospace">      </dependentAssembly></font></div>

<div><br></div><div>I'll raise a bug for the missing IHostBufferPolicySelector interface. I tried working around this by uploading a copy of the Microsoft build of System.Net.Http.dll 4.0.0.0.</div><div><br></div><div>

This got the basic site working (the "Welcome to <a href="http://ASP.NET" target="_blank">ASP.NET</a> Web API" page in the default template), but I'm getting this error whenever I try to use a WebAPI controller:</div>
<div><br>
</div><font color="#ff0000">Missing method System.Web.HttpRequest::GetBufferlessInputStream() in assembly /opt/mono-3.0.0/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll, referenced in assembly /tmp/root-temp-aspnet-0/2956977a/assembly/shadow/5cf10065/cf4140da_93b040bf_00000001/System.Web.Http.WebHost.dll</font><br>

<br>This is confusing, as Mono's status page shows this method as implemented: <a href="http://go-mono.com/status/status.aspx?reference=4.0&profile=4.5&assembly=System.Web" target="_blank">http://go-mono.com/status/status.aspx?reference=4.0&profile=4.5&assembly=System.Web</a>. However, I opened Mono's System.Web.dll in a decompiler and can see that GetBufferlessInputSteam() is missing.</div>
<div class="HOEnZb"><div class="h5">
<div><br></div><div><br><div class="gmail_quote">On Wed, Oct 24, 2012 at 10:35 PM, Rafael Teixeira <span dir="ltr"><<a href="mailto:monoman@gmail.com" target="_blank">monoman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi Daniel,<div><br></div><div>Well at <a href="https://github.com/mono/mono/blob/master/mcs/class/System.Net.Http/System.Net.Http/HttpMessageInvoker.cs" target="_blank">https://github.com/mono/mono/blob/master/mcs/class/System.Net.Http/System.Net.Http/HttpMessageInvoker.cs</a> one can see that such class is part of Mono and stable for at least 5 months, so it surely should be found in Mono 3.0 but from your log it seems that your server is loading a copy found on your bin directory, that may be outdated...<br>


<br><font face="arial narrow, sans-serif" color="#ff6666"><b>Mono: Assembly Loader probing location: '/var/www/WebApiTest/bin/System.Net.Http.dll'.<br>Mono: Assembly Loader shadow-copied assembly to: '/tmp/root-temp-aspnet-0/2956977a/assembly/shadow/ebec392e/785c7991_93b040bf_00000001/System.Net.Http.dll'.<br>


</b></font><br>So please get rid of your copy of System.Net.Http.dll, and it should work.<br><br>In the other hand surely IHostBufferPolicySelector is missing from <a href="https://github.com/mono/mono/blob/master/mcs/class/System.Web.Http/System.Web.Http.dll.sources" target="_blank">https://github.com/mono/mono/blob/master/mcs/class/System.Web.Http/System.Web.Http.dll.sources</a>. Maybe this is newer than the open sourced files from Microsoft being used in that part of Mono. </div>


<div><br></div><div>Please open an issue for this second problem, probably the aspnetstack needs to be refreshed, although this may appear only in the 4.5 profile, I'm not sure what are the .NET platform requirements for <a href="http://ASP.NET" target="_blank">ASP.NET</a> Web API.<br>


<br>Fun,<br><br>Rafael "Monoman" Teixeira<br>---------------------------------------<br>"The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' (I found it!) but 'That's funny ...'"<br>


Isaac Asimov<br>US science fiction novelist & scholar (1920 - 1992)<div><div><br><br><br>On Wed, Oct 24, 2012 at 2:03 AM, Daniel Lo Nigro <<a href="mailto:lists@dan.cx" target="_blank">lists@dan.cx</a>> wrote:<br>

><br>> Just rediscovered the MONO_LOG_LEVEL="debug" environment variable. Here's the log from my app: <a href="http://sprunge.us/eXOV" target="_blank">http://sprunge.us/eXOV</a>. I think these might be related, but of course I could be totally wrong:<br>


> Mono: The class System.Web.Http.Hosting.IHostBufferPolicySelector could not be loaded, used in System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35<br>> Mono: The class System.Net.Http.HttpMessageInvoker could not be loaded, used in System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a<br>


><br>> Thoughts?<br>><br>><br>><br>> On Wed, Oct 24, 2012 at 2:23 PM, Daniel Lo Nigro <<a href="mailto:lists@dan.cx" target="_blank">lists@dan.cx</a>> wrote:<br>>><br>>> I'm trying to get <a href="http://ASP.NET" target="_blank">ASP.NET</a> WebApi working on Mono 3.0, and am getting<br>


>> the following error:<br>>><br>>> System.TypeLoadException: Could not load type<br>>> 'System.Web.Http.WebHost.HttpControllerHandler' from assembly<br>>> 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral,<br>


>> PublicKeyToken=31bf3856ad364e35'.<br>>>   at (wrapper managed-to-native) System.Type:type_is_assignable_from<br>>> (System.Type,System.Type)<br>>>   at System.Type.IsAssignableFrom (System.Type c) [0x00096] in<br>


>> /usr/local/src/mono-3.0.0/mcs/class/corlib/System/Type.cs:902<br>>>   at System.Web.Mvc.AreaRegistration.IsAreaRegistrationType<br>>> (System.Type type) [0x00000] in <filename unknown>:0<br>>>   at System.Web.Mvc.TypeCacheUtil+<>c__DisplayClass1.<FilterTypesInAssemblies>b__0<br>


>> (System.Type type) [0x00000] in <filename unknown>:0<br>>>   at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator35`1[System.Type].MoveNext<br>>> () [0x00059] in<br>>> /usr/local/src/mono-3.0.0/mcs/class/System.Core/System.Linq/Enumerable.cs:3030<br>


>>   at System.Collections.Generic.List`1[System.Type].AddEnumerable<br>>> (IEnumerable`1 enumerable) [0x00013] in<br>>> /usr/local/src/mono-3.0.0/mcs/class/corlib/System.Collections.Generic/List.cs:134<br>


>>   at System.Collections.Generic.List`1[System.Type]..ctor<br>>> (IEnumerable`1 collection) [0x0002f] in<br>>> /usr/local/src/mono-3.0.0/mcs/class/corlib/System.Collections.Generic/List.cs:69<br>>>   at System.Linq.Enumerable.ToList[Type] (IEnumerable`1 source)<br>


>> [0x00006] in /usr/local/src/mono-3.0.0/mcs/class/System.Core/System.Linq/Enumerable.cs:2867<br>>>   at System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies<br>>> (System.String cacheName, System.Predicate`1 predicate, IBuildManager<br>


>> buildManager) [0x00000] in <filename unknown>:0<br>>>   at System.Web.Mvc.AreaRegistration.RegisterAllAreas<br>>> (System.Web.Routing.RouteCollection routes, IBuildManager<br>>> buildManager, System.Object state) [0x00000] in <filename unknown>:0<br>


>>   at System.Web.Mvc.AreaRegistration.RegisterAllAreas (System.Object<br>>> state) [0x00000] in <filename unknown>:0<br>>>   at System.Web.Mvc.AreaRegistration.RegisterAllAreas () [0x00000] in<br>


>> <filename unknown>:0<br>>>   at Daniel15.WebApiTest.WebApiApplication.Application_Start ()<br>>> [0x00000] in <filename unknown>:0<br>>>   at (wrapper managed-to-native)<br>>> System.Reflection.MonoMethod:InternalInvoke<br>


>> (System.Reflection.MonoMethod,object,object[],System.Exception&)<br>>>   at System.Reflection.MonoMethod.Invoke (System.Object obj,<br>>> BindingFlags invokeAttr, System.Reflection.Binder binder,<br>


>> System.Object[] parameters, System.Globalization.CultureInfo culture)<br>>> [0x000d5] in /usr/local/src/mono-3.0.0/mcs/class/corlib/System.Reflection/MonoMethod.cs:229<br>>><br>>> Followed by this error:<br>


>> System.TypeLoadException:<br>>> A type load exception has occurred.<br>>> Description: HTTP 500.Error processing request.<br>>> Details: Non-web exception. Exception origin (name of application or<br>


>> object): Daniel15.WebApiTest.<br>>><br>>> Are there additional debug flags I can use to determine what's causing<br>>> this and why it's unable to load the type? I'm using Mono 3.0<br>


>> (compiled from source) and xsp/fastcgi-mono-server4 (latest Git<br>>> version)<br>>><br>>> Thanks in advance!<br>><br>><br>><br>><br></div></div>> _______________________________________________<br>


> Mono-devel-list mailing list<br>> <a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>> <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>


></div>
</blockquote></div><br><br></div>
</div></div></blockquote></div><br></div>