将Web API Controller部署到生产环境

时间:2012-07-05 16:31:04

标签: asp.net-mvc-4 asp.net-web-api

我在VS 2010中有一个ASP.NET MVC应用程序。我在我的应用程序中添加了一个新的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

1 个答案:

答案 0 :(得分:2)

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