博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows service承载的web api宿主搭建(Microsoft.Owin+service)
阅读量:5110 次
发布时间:2019-06-13

本文共 2334 字,大约阅读时间需要 7 分钟。

今天突然想起改良一下以前搭建的“windows service承载的web api”服务,以前也是直接引用的类库,没有使用nuget包,时隔几年应该很旧版本了吧。所以本次把需要nuget获取的包记录一下。

 还有几点需要注意一下:

1、设定webapi仅仅使用json格式

using System;using System.Collections.Generic;using System.Net.Http;using System.Net.Http.Formatting;using System.Net.Http.Headers;namespace NetMiddlewareSvr{    ///     /// Json格式头部类    ///     public class JsonContentNegotiator : IContentNegotiator    {        private readonly JsonMediaTypeFormatter _jsonFormatter;        public JsonContentNegotiator(JsonMediaTypeFormatter formatter)        {            _jsonFormatter = formatter;        }        public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable
formatters) { var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json")); return result; } }}

2、修改默认路由规则:

using Owin;using System.Net.Http.Formatting;using System.Web.Http;namespace NetMiddlewareSvr{    public class RegisterRoutesStartup    {        public void Configuration(IAppBuilder appBuilder)        {            HttpConfiguration config = new HttpConfiguration();            //自定义路由            config.Routes.MapHttpRoute(              name: "CustomApi",              routeTemplate: "api/{controller}/{action}/{id}",              defaults: new { id = RouteParameter.Optional }            );            //只响应Json请求            var jsonFormatter = new JsonMediaTypeFormatter();            config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));            appBuilder.UseWebApi(config);        }    }}

3、启动监听

public partial class NetMiddwareService : ServiceBase    {        private IDisposable hostObject;        public NetMiddwareService()        {            InitializeComponent();        }        protected override void OnStart(string[] args)        {            hostObject = hostObject = WebApp.Start
("http://" + "127.0.0.1" + ":5990"); } protected override void OnStop() { } }

 补充一下nuget的顺序:Microsoft.Owin->Microsoft.Owin.Hosting->Microsoft.AspNet.WebApi.Core,剩下的是依赖包自动导入的。当然log4net和Newtonsoft.Json不是owin的依赖包

 

转载于:https://www.cnblogs.com/datacool/p/datacool2019001.html

你可能感兴趣的文章
Linux 查询配置命令
查看>>
存储过程入门
查看>>
Java泛型的基本使用
查看>>
我的游戏学习日志8——数字游戏策划(3)数字游戏的概念
查看>>
智力逻辑题
查看>>
Phpcms V9导航循环下拉菜单的调用技巧
查看>>
SpringBoot前后端分离Instant时间戳自定义解析
查看>>
开发一个简单的 Vue 弹窗组件
查看>>
1076 Wifi密码 (15 分)
查看>>
rsync
查看>>
java中的IO操作总结
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
面试题17:合并两个排序的链表
查看>>
Jmeter HTTPS接口测试的证书导入
查看>>
Java基础---集合
查看>>
简单母函数专题
查看>>
Connecting Vertices CodeForces - 888F (图论,计数,区间dp)
查看>>