部署Web API服务器端所需的最少文件

时间:2012-09-13 18:02:43

标签: c# wcf service asp.net-web-api wcf-web-api

因此经过大量研究后,我开始使用webAPI入口点来增强我们的服务服务器堆栈。基于this thread,尤其是Digerati董事会成员的最后一篇文章,我们将WebAPI服务作为WCF应用层的外观实现。 (我们的WCF服务只是进入我们所有行为的应用层的外观)

我的问题是这个。我下载了MVC 4并在我的服务解决方案中创建了一个新的WebAPI项目。但哇,在我的项目中创造了大量废话,我根本不需要!例如,所有图像文件,家庭控制器,视图和模型等。

因此,在将其拆解为服务项目时,构建功能服务项目需要的最小文件是什么?我们的目的是在同一服务器中并排发布两种服务类型(WCF和webAPI)。每个服务调用执行相同的相同服务调用并返回请求的特定DTO。到目前为止,它看起来像App_Start,Controllers和Glabal.asax / web.config条目。我绝对不需要视图,模型或图像!!!

关于其他人为完成纯服务部署所做的工作的任何意见都会受到欢迎。

2 个答案:

答案 0 :(得分:18)

这里的问题相同。我发现Shawn Kendrot的 article 解释了如何创建最小的Web API项目。它是为Web API的测试版编写的,但似乎仍然有效。

  1. 创建一个空的ASP.NET项目。
  2. 添加对System.Web.HttpSystem.Web.Http.WebHost(版本4.0.0.0)
  3. 的引用
  4. 添加Global.asax文件
  5. Global.Application_Start中注册路线。类似的东西:

    protected void Application_Start(object sender, EventArgs e)
    {
        GlobalConfiguration.Configuration.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional });
    }
    
  6. 添加控制器

    public class SampleController : ApiController
    {
      public string Get(int id)
      {
        return "Hello";
      }
    }
    
    1. 使用网址/api/sample/123在本地运行项目并享受结果:
  7. enter image description here

答案 1 :(得分:3)

FYI。我发现我不得不再引用两个.dll:

  • System.Net.Http
  • Newtonsoft.Json