2012-03-02 4 views
6

미안 내가 내가 비주얼 스튜디오를 사용하는 경우이 http://myrandomykien.blogspot.com/2012/02/simplest-web-api-site-with-nuget.htmlASP.NET 웹 API는

단계를 수행 한 비주얼 스튜디오 2010 (SP1) 으로 웹 양식에서 asp.net 웹 API를 사용하려고 형성 개발 서버 , 작동하지만 iis 7.5 사용할 때 오류 HTTP 404.0 - 찾을 수 없습니다.

편집

이것은 이것은 API를 클래스

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

이 더 많은 정보를 제공 할 수있다? 지금은별로하지 않을 것입니다. – marcind

답변

6

당신은 확장명이 요청을 ASP.NET에 연결되어 있는지 확인해야합니다입니다

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 } 
      ); 
     } 

내 글로벌-asax 이는 개발 서버가 기본적으로 수행하지만 IIS는 수행하지 않습니다.

몇 가지 가능한 접근 방법이 있습니다.

먼저 system.webServer의 모듈 섹션에 runAllManagedModulesForAllRequests="true"을 추가 할 수 있습니다. 어떤 사람들은 더 나은 방법이 주장하는, 당신은 다음을 수행하십시오

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

+0

runAllManagedModulesForAllRequests = "true"가 작동합니다! thanks Wiktor – sebacipo

+3

누군가가 iis를 클래식 모드로 사용 중이라면 Wiktor의 솔루션이 작동하지 않아 iis에 대한 확장 최소화 업데이트를 설치해야합니다. http://support.microsoft.com/kb/980368 – sebacipo

관련 문제