static void Main(string[] args)
{
//Assembly.Load("WebApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"); //加载外部程序集
var config = new HttpSelfHostConfiguration("http://localhost:8080"); config.Routes.MapHttpRoute(
"API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional }); using (var server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
Console.WriteLine("Press Enter to quit.");
Process.Start("http://localhost:8080/api/xx");
Console.ReadLine();
}
}
 public class xxController: Controller
{
public IEnumerable<string> Get()
{
return new string[] { "", "" };
}
}

OwinSelfHost

//  OWIN host
        //**********************************************************************************
        static void Main(string[] args)
        {
            string baseAddress = "http://localhost:9000/";
            // Start OWIN host
            using (WebApp.Start<Startup>(url: baseAddress))
            {
                // Create HttpCient and make a request to api/values
                HttpClient client = new HttpClient();

var response = client.GetAsync(baseAddress + "api/xx").Result;

Console.WriteLine(response);
                Console.WriteLine(response.Content.ReadAsStringAsync().Result);
                Console.ReadLine();
            }
        }

public class Startup
        {
            // 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();
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

appBuilder.UseWebApi(config);
            }
        }

//**********************************************************************************

cross-origin support

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();
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);
}
}
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" };
}
}
} 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();
}
}

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

最新文章

  1. 为什么有禁用Mac系统的Spotlight的需求:
  2. H5页面在QQ和微信上分享,为什么不能自定义设置图片和摘要?
  3. python 安装模块步骤
  4. 数据库update死锁
  5. [转载]GMM的EM算法实现
  6. android 自定义组件
  7. ASP.NET MVC Html.BeginForm用法1
  8. Kinetic使用注意点--image
  9. Highways
  10. iOS-封装静态库
  11. java内部类继承--构造函数传参
  12. Linux 系统管理06--磁盘管理
  13. JavaScript设计模式_02_策略模式
  14. Java的数据类型和参数传递
  15. python --商品评价---- 数据表结构以及理解
  16. netty的数据通信之心跳检测
  17. dagger2 重点笔记
  18. php中urlencode与rawurlencode的区别
  19. 【BZOJ2159】Crash的文明世界
  20. 课程二(Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization),第二周(Optimization algorithms) —— 2.Programming assignments:Optimization

热门文章

  1. 表单在ios下输入框必须重压或长按才能唤起软键盘
  2. SSIM (Structural SIMilarity) 结构相似性
  3. ISO/IEC 9899:2011 条款6.7.8——类型定义
  4. Python3基础 str ljust-rjust-center 左、右对齐 居中
  5. 使用SoapUI发送Post请求
  6. EAI并发
  7. mac java找他绝对路径的方法
  8. Java编程实战宝典PDF (中文版带书签)
  9. 【物联网】arduino wifi
  10. 单元测试-测试技术(Unit Test)