ASP.NET网页API形成

问题描述:

我正尝试使用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

你必须确保无扩展名的请求路由到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