OwinSelfHost自宿主的使用
Owin介绍看上篇
Owin将多种应用框架使用统一的接口来实现各框架之间的适配!
新建控制台项目:
添加Nuget包
安装OWIN自宿主的包
1、通过程序包管理器控制台
新建Startup类
////// OWIN应用程序入口 /// public partial class Startup { public void Configuration(IAppBuilder app) { HttpConfiguration config = new HttpConfiguration(); //配置路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); //将默认xml返回数据格式改为json config.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("datatype", "json", "application/json")); app.UseWebApi(config); // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888 } }
添加几个测试用的Controller
其实就是webapi或者webmvc里的controller,这里以webapi为例说明
public class HomeController : ApiController { public string Get() { return "Hello World"; } }
主程序入口启动Owin
int port = 9000; // 开始参数 StartOptions startOptions = new StartOptions(); startOptions.Port = port; startOptions.Urls.Add("http://127.0.0.1:" + port); startOptions.Urls.Add("http://localhost:" + port); // 设置支持的IP string name = Dns.GetHostName(); IPAddress[] ipadrlist = Dns.GetHostAddresses(name); foreach (IPAddress ip in ipadrlist) { if (ip.AddressFamily == AddressFamily.InterNetwork) startOptions.Urls.Add("http://" + ip.ToString() + ":" + port); } try { WebApp.Start(startOptions); } catch (Exception ex) { throw ex; } Console.WriteLine("程序已启动, 按任意键退出"); Console.ReadKey();
浏览器,访问一下URL即可看到时结果了