2016-08-17 2 views
1

디버그 모드에서 포트 42000에서 실행되는 MyWebApi 프로젝트라는 WebApi가 있습니다. 나는 다음과 같은 기술을 사용하여 MyWebApi 호스트 Owin와 콘솔 응용 프로그램을 만들어 :Owin WebApp에서 WebApi 프로젝트를 중지하는 방법

static void Main(string[] args) 
{    
    using (WebApp.Start<WebApi.Startup>("http://localhost:9000/")) 
    { 
     Console.WriteLine("Server is running..."); 
     Console.WriteLine("Press Enter key to stop it."); 
     Console.ReadKey(); 
    } 

    Console.WriteLine("Server is shutting down..."); 
} 

모든 것이 잘 작동합니다. 포트 9000과 42000 모두에서 데이터를 가져오고 게시 할 수 있습니다. 콘솔을 중지 한 후에도 포트 42000에서 데이터를 게시하고 가져올 수 있습니다. WepApi 프로젝트에서 직접 디버깅을 중지하는 것과 같은 방법으로 MyWebApi를 중지 할 수 있습니까?

덕분에,

오스틴

답변

1

당신의 웹 애플리케이션 폐기하십시오 :

using (var _webApp=WebApp.Start<WebApi.Startup>("http://localhost:9000/")) 
{ 
    Console.WriteLine("Server is running..."); 
    Console.WriteLine("Press Enter key to stop it."); 
    Console.ReadKey(); 
    _webApp.Dispose();// Add this 
} 

Console.WriteLine("Server is shutting down..."); 
+0

WebApp를 수동으로 처리하려고 시도했지만 포트 42000에서 WebApi가 여전히 실행 중입니다. dispose 메서드는 포트 9000에서만 실행되는 서버를 중지합니다. – AustinTX

+0

하지만이 웹 응용 프로그램을 호스팅 할 때 두 포트를 모두 사용합니까? 나는 어떻게 보이지 않는다. 이전에 포트 42000을 사용하여 실행 한 오래된 앱이 맞지 않습니까? – octavioccl

+0

그냥 명확히 : 콘솔 호스트 응용 프로그램에는 기존 WebApi를 호스팅하는 주 방법 이외의 다른 코드가 없습니다. 콘솔 앱을 시작한 후에는 두 포트 모두와 통화 할 수 있습니다. http : // localhost : 9000/api/users/get/5 ==> 유효 http : // localhost : 42000/api/users/get/5 ==> 유효 콘솔을 끈 후에 http : // localhost : 9000/api/users/get/5 ==> 무효 http : // localhost : 42000/api/users/get/5 == > 유효 – AustinTX

0
public class Startup 
    { 
     private static readonly IUnityContainer _container = UnityHelpers.GetConfiguredContainer(); 

     public static void StartServer() 
     { 
      string baseAddress = "http://localhost:8081/"; 
      var startup = _container.Resolve<Startup>(); 
      IDisposable webApplication = WebApp.Start(baseAddress, startup.Configuration); 

      try 
      { 
       Console.WriteLine("Started..."); 

       Console.ReadKey(); 
      } 
      finally 
      { 
       webApplication.Dispose(); 
      } 
     }   
    } 

SELF HOST WEBAPI WITH OWIN AND UNITY

webApplication.Dispose를(); - webappi 서버 중지

+0

문을 사용하면 사용자가 아무 키나 누르면 WebApp가 삭제됩니다. 이 경우 포트 9000에서 수신 대기하는 유일한 서버가 삭제됩니다. 포트 42000에 나열되는 실제 WebApi가 아직 실행 중입니다. – AustinTX

관련 문제