如何在不同的端口上设置每个owin selfhost控制器?

时间:2018-06-06 15:17:21

标签: asp.net-web-api windows-services owin self-hosting

在Windows服务项目中考虑一个带有多个控制器的SelfHost OWIN应用程序。

Windows服务项目包含多个服务,每个服务处理一个控制器。

似乎所有端口(4100到4102)都可以使用所有方法。问题是:

是否可以将每个控制器/方法的访问限制为一个端口?

我想这可以通过Startup.cs来实现,但是怎么做?

服务1:

WebApp.Start<Startup>("http://+:4100");

服务2:

WebApp.Start<Startup>("http://+:4101");

服务3:

WebApp.Start<Startup>("http://+:4102");

Startup.cs:

class Startup
{
    public void Configuration(IAppBuilder appBuilder)
    {
        HttpConfiguration config = new HttpConfiguration();
        config.MapHttpAttributeRoutes();
        appBuilder.UseWebApi(config);
    }
}

控制器1:

public class Test1Controller : ApiController
{
  [HttpPost]
  [Route("post1")]
  public string PostdData([FromBody] string id)
  {
    return "Response from post1: " + id;
  }
}

控制器2:

public class Test2Controller : ApiController
{
  [HttpPost]
  [Route("post2")]
  public string PostdData([FromBody] string id)
  {
    return "Response from post2: " + id;
  }
}

控制器3:

public class Test3Controller : ApiController
{
  [HttpPost]
  [Route("post3")]
  public string PostdData([FromBody] string id)
  {
    return "Response from post3: " + id;
  }
}

0 个答案:

没有答案