2012-10-12 111 views
8

Siguiendo el ejemplo de este artículo: http://blogs.msdn.com/b/yaohuang1/archive/2012/05/21/asp-net-web-api-generating-a-web-api-help-page-using-apiexplorer.aspxASP.net Web API y System.Net.Http

He configurado todo para proporcionar la documentación para mi proyecto Web API, pero estoy corriendo en un problema. Cuando trato de usar @api.HttpMethod obtengo el error que describe a la mitad del artículo. Él dice que tiene que agregar manualmente una referencia al ensamblaje System.Net.Http, Versión = 2.0.0.0 en el archivo web.config (aunque está en la carpeta Referencias por defecto), pero si sigue su ejemplo de agregar el ensamblado de la manera tradicional a través la etiqueta en web.config ..... bueno, encontrarás que ya no es una etiqueta válida en 4.5 y todo se hace a través de AssemblyRedirects. Intenté eso pero fue en vano. ¿Alguien tiene este problema o sabe cómo ayudar con el cambio en web.config? ¿Me perdí una reunión?

Visual Studio 2012 proyecto Web API MVC4 (no de Nuget, la versión final se envía con VS2012)

+0

No puedo reproducir su problema en mi proyecto VS 2012 MVC4 Web API. ¿Qué excepción recibe después de agregar la referencia a System.Net.Http a su web.config? –

Respuesta

22

Añadir a continuación la configuración dentro de su archivo Web.config bajo <system.web> nodo (asumiendo que su aplicación se ejecuta en .NET 4.5 , targetFramework atributo se establece en 4,5):

<compilation targetFramework="4.5"> 
    <assemblies> 
    <add assembly="System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </assemblies> 
</compilation> 

también añadir el siguiente uno en el nivel raíz bajo <configuration> nodo:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Esto debería resolver su problema.

+4

¿Por qué es esto necesario? – Adam

+4

nadie sabe ... – GreyCloud

+1

He estado luchando con este estúpido problema para siempre y lo anterior lo solucionó ... muchas gracias – 99823