zoukankan      html  css  js  c++  java
  • 转:winform_webApiSelfHost及 OWIN WebAPI Service

    winform_webApiSelfHost

    窗本构造函数中添加以下代码:

    var baseAddress = ConfigurationManager.AppSettings["baseAddress"];
                var config = new HttpSelfHostConfiguration(baseAddress);
                config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
                var cors = new EnableCorsAttribute("*", "*", "*");
                config.EnableCors(cors);
                var server = new HttpSelfHostServer(config);
                server.OpenAsync().Wait();

    App.config文件中添加以下内容:

    <appSettings>
        <add key="baseAddress" value="http://localhost:9002" />
      </appSettings>

    Create an OWIN configuration handler

    class Startup
    {
        //  Hack from http://stackoverflow.com/a/17227764/19020 to load controllers in 
        //  another assembly.  Another way to do this is to create a custom assembly resolver
        Type valuesControllerType = typeof(OWINTest.API.ValuesController);
    
        // This code configures Web API. The Startup class is specified as a type
        // parameter in the WebApp.Start method.
        public void Configuration(IAppBuilder appBuilder)
        {
            // Configure Web API for self-host. 
            HttpConfiguration config = new HttpConfiguration();
    
            //  Enable attribute based routing
            //  http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2
            config.MapHttpAttributeRoutes();
    
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
    
            appBuilder.UseWebApi(config);
        } 
    }

    Add API controllers

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web.Http;
    
    namespace OWINTest.Service.API
    {
        [RoutePrefix("api/testing")]
        public class RoutedController : ApiController
        {
            [Route("getall")]
            public IEnumerable<string> GetAllItems()
            {
                return new string[] { "value1", "value2" };
            }
        }
    }

    Add code to start/stop the WebAPI listener

    public partial class APIServiceTest : ServiceBase
    {
        public string baseAddress = "http://localhost:9000/";
        private IDisposable _server = null;
    
        public APIServiceTest()
        {
            InitializeComponent();
        }
    
        protected override void OnStart(string[] args)
        {
            _server = WebApp.Start<Startup>(url: baseAddress);
        }
    
        protected override void OnStop()
        {
            if(_server != null)
            {
                _server.Dispose();
            }
            base.OnStop();
        }
    }

    原文:http://www.cnblogs.com/xinzheng/p/5586965.html

    https://github.com/danesparza/OWIN-WebAPI-Service

  • 相关阅读:
    javascript预编译练习(变态篇)
    javascript预编译
    原码、反码、补码 详解
    Ubuntu 16.04安装anaconda3
    html+css实现奥运五环(环环相扣)
    jquery实现分页效果
    Centos6.5修改mysql登陆用户密码
    2020/5/29 JS中的循环和函数
    2020/5/27 JS 循环语句
    2020/5/26 JS
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/6391407.html
Copyright © 2011-2022 走看看