zoukankan      html  css  js  c++  java
  • ASP.NET Web Api 实践系列(一)自我寄宿

        从今天开始,研究ASP.NET Web Api(以下有时会简称Web Api)。我会写一个实践系列专题,不一定成理论体系,只是遇到问题或心得,记下来。争取用一段较长的时间对ASP.NET Web Api有个较深入的理解。这里我是使用VS2013集成开发环境,如果版本不够,可以用NuGet去下载Web Api相关dll。

        今天讨论自我寄宿Web Api。

        Web Api继承了WCF的优点,除了常规的Web寄宿(IIS)外,还可以在NET的控制台、WinForms等程序中寄宿。这里讲一讲在控制台中寄宿Web Api。

        一、编写Api方法

        新建C#类库项目MyControllers,引用System.Web.Http.dll。

        编写Api类文件MyValuesController.cs:

    using System.Web.Http;
    
    namespace MyControllers
    {
        public class MyValuesController : ApiController
        {
            public string Get()
            {
                return "OK";
            }
        }
    }

        二、添加寄宿项目

        添加一个控制台项目MyConsoleApiSvr,引用MyControllers项目,同时引用以下4个Web Api相关DLL:

    • System.Net.Http.dll
    • System.Web.Http.dll
    • System.Net.Formatting.Http.dll
    • System.Web.Http.SelfHost.dll

        主程序如下:

     1 using System;
     2 using System.IO;
     3 using System.Web.Http;
     4 using System.Web.Http.SelfHost;
     5 using System.Reflection;
     6 
     7 namespace MyConsoleApiSvr
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Console.Title = "Api Service";
    14 
    15             var apiDll = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MyControllers.dll");
    16             Assembly.LoadFrom(apiDll);
    17             var config = new HttpSelfHostConfiguration("http://localhost:4588");
    18             config.Routes.MapHttpRoute(
    19                 name: "DefaultApi",
    20                 routeTemplate: "api/{controller}/{id}",
    21                 defaults: new {id = RouteParameter.Optional});
    22             using (var svr = new HttpSelfHostServer(config))
    23             {
    24                 svr.OpenAsync().Wait();
    25                 Console.WriteLine("API服务已开启!");
    26                 Console.ReadLine();
    27             }
    28             
    29         }
    30     }
    31 }

        以上代码可以分为几个步骤:

    1. 加载包含Api控制器方法的DLL。(第16行)
    2. 添加服务配置,并指定服务寄宿地址。(第17行)
    3. 添加全局默认路由配置。(第18-21行)
    4. 定义并打开服务。(第22、24行)

        三、运行服务并测试

        运行Web Api服务:

        并在浏览器中测试:

  • 相关阅读:
    [总结]FFMPEG视音频编解码零基础学习方法--转
    ffmpeg中swscale 的用法
    FFmpeg解码H264及swscale缩放详解
    C++: std::string 与 Unicode 如何结合?
    SpringBoot-@RequestParam
    SpringBoot --web 应用开发之文件上传
    Java并发编程:线程池的使用
    Executor线程池的最佳线程数量计算
    并发下线程池的最佳数量计算
    根据CPU核心数确定线程池并发线程数
  • 原文地址:https://www.cnblogs.com/huatao/p/4712848.html
Copyright © 2011-2022 走看看