2012-03-02 26 views
6

Próbuję użyć API asp.net internetowej w formularzach WWW z Visual Studio 2010 (SP1) Zrobiłem to kroki http://myrandomykien.blogspot.com/2012/02/simplest-web-api-site-with-nuget.htmlASP.NET Web Api w sieci tworzy

kiedy używam visual studio serwer rozwoju działa, ale kiedy używam iis 7.5 otrzymuję błąd HTTP 404.0 - nie znaleziono.

Edit

To mój 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 } 
      ); 
     } 

Jest to klasa api

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

można podać więcej informacji? w tej chwili niewiele. – marcind

Odpowiedz

6

Musisz upewnić się, że bez rozszerzeń wnioski są kierowane do ASP.NET co jest domyślnie wykonywane przez serwer programistyczny, ale nie IIS.

Istnieje kilka możliwych podejść.

Po pierwsze, można dodać runAllManagedModulesForAllRequests="true" w sekcji modułów system.webServer. Niektórzy ludzie twierdzą, że są lepsze sposoby, można następnie wykonaj je:

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

+0

runAllManagedModulesForAllRequests = "true" działa !!! dzięki Wiktor – sebacipo

+3

Jeśli ktoś używa iis w trybie Classic, rozwiązanie Wiktora nie działa, musisz zainstalować aktualizację rozszerzeniaLeop dla iis. http://support.microsoft.com/kb/980368 – sebacipo