2012-03-02 53 views
6

Estoy tratando de utilizar la API de asp.net web formularios web con Visual Studio 2010 (SP1) he hecho esto los pasos http://myrandomykien.blogspot.com/2012/02/simplest-web-api-site-with-nuget.htmlASP.NET Web API Web en forma

Cuando utilizo el Visual Studio servidor de desarrollo funciona, pero cuando estoy usando iis 7.5 obtengo un error HTTP 404.0 - no encontrado.

Editar

Ésta es mi Global-asax

protected void Application_Start(object sender, EventArgs e) 
     { 
      RouteTable.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = System.Web.Http.RouteParameter.Optional } 
      ); 
     } 

Esta es la clase API

public class GreetingController : ApiController 
{ 
    public string GetGreeting(string id) 
    { 
     return String.Format("Hello {0}", id); 
    } 
} 
+0

podría proporcionar más información? no hay mucho para seguir ahora. – marcind

Respuesta

6

Usted tiene que asegurarse de que las solicitudes sin extensión se encaminan a ASP.NET lo cual es hecho por defecto por su servidor de desarrollo pero no por IIS.

Hay dos enfoques posibles.

Primero, podría agregar runAllManagedModulesForAllRequests="true" en la sección de módulos del system.webServer. Algunas personas afirman que hay mejores métodos, a continuación, puede seguirlas:

http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html

+0

runAllManagedModulesForAllRequests = "true" funciona !!! gracias Wiktor – sebacipo

+3

Si alguien está usando iis en modo clásico, la solución de Wiktor no funciona, tienes que instalar la actualización de extensión de iis. http://support.microsoft.com/kb/980368 – sebacipo