2016-05-16 4 views
0

私はOWINスタートアップクラスを持つWebApiを持っています。スタートアップコンフィグレーションメソッド内でOWIN実行アドレスを取得

(Web APIを登録するために)Configurationメソッド内のメソッドを呼び出す必要があり、サービスのアドレスが必要です(localhost:12345など)。

どうすれば入手できますか?

public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      var config = new HttpConfiguration(); 
      ... 
      config.Formatters.Clear(); 
      config.Formatters.Add(new JsonMediaTypeFormatter()); 

      RegisterService(serviceAddress); // <- here 
      ... 
     } 
} 

答えて

1

私はこのようなものでした:私はいくつかのSSLチェックを持っているし、ポートおよびIPに渡し、複数のポートを使用するよう

public class WebServer : IDisposable 
{ 
    private static IDisposable WebApplication = null; 
    private static WebServer _Instance = null; 
    public static GetInstance() 
    { 
     //other tests before here 
     if(_Instance == null) 
     { 
      WebApplication = Microsoft.Owin.Hosting.WebApp.Start<WebServer>("localhost:12345"); 
      _Instance = new WebServer(); 
      _Instance._HostAddress = hostAddress; 
     } 
    } 

    public void Configuration(IAppBuilder app) 
    { 
     HubConfiguration config = new HubConfiguration(); 
     config.EnableJSONP = true; 
     app.UseCors(CorsOptions.AllowAll); 
     app.MapSignalR(config); 
     // other config 
    } 

    public void Dispose() 
    { 
     if (WebApplication != null) 
      WebApplication.Dispose(); 
     WebApplication = null; 
     _Instance = null; 
    } 
} 

WebServer webserver = WebServer.GetInstance(); 
//later 
webserver.Dispose(); 

鉱山がこれよりも少し異なっているが、これはその要旨でありますそれの。

関連する問題