2017-09-08 13 views
3

자체 호스팅 OWIN 인스턴스에서 실행되도록 솔루션을 수정하고 싶지만 필요한 경우 http://localhost 아래에서 실행해야합니다.자체 호스팅 및 IIS 호스팅 가능 OWIN 프로젝트

두 클래스 모두에서 내 시동 클래스를 인식하도록 구조해야합니까?

현재, 나는 http://localhost:2746로 프로젝트 URL과 콘솔 응용 프로그램으로 설정 웹 API 프로젝트가이 내 시작 클래스입니다 : 나는 또한 Web.config의이이

[assembly: OwinStartup(typeof(Startup))] 
namespace Books 
{ 
    public class Startup 
    { 
     public static void Main(string[] args) 
     { 
      const int port = 2746; 
      var url = $"http://localhost:{port}/"; 

      using (WebApp.Start<Startup>(new StartOptions(url) { ServerFactory = "Microsoft.Owin.Host.HttpListener" })) 
      { 
       var client = new HttpClient { BaseAddress = new Uri(url) }; 
       Console.ReadLine(); 
      } 
     } 

     public void Configuration(IAppBuilder app) 
     { 
      HttpConfiguration httpConfiguration = new HttpConfiguration(); 
      WebApiConfig.Register(httpConfiguration); 
      app.Use<CustomExceptionMiddleware>().UseWebApi(httpConfiguration); 
      app.UseFileServer(StaticFileConfig.Build()); 
     } 
    } 
} 

:

<add key="owin:AutomaticAppStartup" value="false" /> 

답변

0

사용이 프로젝트 :

  1. 이 API를 컨트롤러에 대한 웹 프로젝트를 만듭니다. OwinStartup 속성이를 나타냅니다에서 호스팅 할 수있는이 프로젝트는
  2. 셀프 호스트로, 웹 프로젝트를 참조 할 필요는이 프로젝트가, 지금은

은 PS이 프로젝트에 WebApiConfig/Controllers를 공유 할 수있는 또 다른 콘솔 프로젝트를 만들 IIS를 entrypoint iis,하지만 난 전통적인 global.asax api 구성을 사용합니다. 따라서 클래스는 WebApiConfig

의 구성을 공유 할 수 있습니다.