2012-07-05 12 views
2

我在VS 2010中有一个ASP.NET MVC应用程序。我为我的应用程序添加了一个新的Web API控制器。下面是一个简单的方法,我试图调用:将Web API控制器部署到产品

public List<Article> Get() 
     { 
      using (var db = new HighOnCodingDbEntities()) 
      { 
       var articles = (from a in db.Articles 
           select a).Take(10).ToList(); 
       return articles; 
      } 

     } 

的Global.asax:

routes.MapHttpRoute(
    name: "API Default", 
    routeTemplate: "api/{controller}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

当我把这个方法我得到“未找到资源”。我已经发布了应用程序二进制文件,我相信这是我需要做的。

网址应为:http://www.highoncoding.com/api/articlesapi

ArticlesAPIController.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 
using HighOnCoding.Models; 

namespace HighOnCoding.Controllers 
{ 
    public class ArticlesAPIController : ApiController 
    { 
     // GET api/<controller> 
     public List<Article> Get() 
     { 
      using (var db = new HighOnCodingDbEntities()) 
      { 
       var articles = (from a in db.Articles 
           select a).Take(10).ToList(); 
       return articles; 
      } 

     } 

     // GET api/<controller>/5 
     public string Get(int id) 
     { 
      return "value"; 
     } 

     // POST api/<controller> 
     public void Post(string value) 
     { 
     } 

     // PUT api/<controller>/5 
     public void Put(int id, string value) 
     { 
     } 

     // DELETE api/<controller>/5 
     public void Delete(int id) 
     { 
     } 
    } 
} 

作品在本地机器上:

enter image description here

+0

你是如何定义路线的?你在打什么网址?老实说,你认为我们如何回答404不知道这些细节的问题? – Aliostad 2012-07-05 16:43:57

+0

用更多信息更新了问题! – azamsharp 2012-07-05 17:12:16

+0

如何调用包含此方法的控制器? – 2012-07-05 17:24:57

回答

2

在生产,确保.NET Framework版本为您您的网站的IIS7应用程序池在集成模式下设置为.NET 4.0.xxx。

+0

似乎托管服务提供商目前不允许MVC 4 BETA版本 – azamsharp 2012-07-08 02:40:26