2012-03-02 43 views
6

我正嘗試使用Web表單的asp.net網頁API與Visual Studio 2010(SP1) 我已經做了,當我使用Visual Studio的這個步驟http://myrandomykien.blogspot.com/2012/02/simplest-web-api-site-with-nuget.htmlASP.NET網頁API形成

開發服務器它的工作,但是當我使用iis 7.5我得到一個錯誤HTTP 404.0 - 找不到。

編輯

這是我的全局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 } 
      ); 
     } 

這是API類

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

你能提供更多的信息?現在還沒有太多的事情要做。 – marcind 2012-03-02 16:24:29

回答

6

你必須確保無擴展名的請求路由到ASP.NET這是由開發服務器默認完成的,但不是IIS。

有幾種可能的方法。

首先,您可以在system.webServer的模塊部分添加runAllManagedModulesForAllRequests="true"。有些人聲稱有更好的方法,你就可以跟着他們:

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

+0

runAllManagedModulesForAllRequests =「true」的作品!謝謝Wiktor – sebacipo 2012-03-02 18:28:11

+3

如果有人在Classic模式下使用iis,Wiktor的解決方案不起作用,您必須安裝iis的extensionLess更新。 http://support.microsoft.com/kb/980368 – sebacipo 2012-03-06 13:44:07