2016-05-28 11 views
0

複数のアプリケーション(app1、app2)に対して、owin自己ホストサービスを設定しようとしています。Web API Owin自己ホスト複数アプリケーション

1つのアプリケーションプールがアプリケーションごとに1つのAppDomainを使用するIISの同じ動作を使用したいとします。

using (WebApp.Start<WebServerStartup>(url: "http://localhost:9000/")) { ... } 

...とWebServerStartup実装:ここ

は、我々が使用するコードです

internal class WebServerStartup 
{ 
    public void Configuration(IAppBuilder appBuilder) 
    { 
     // Configure Web API for self-host. 
     var config = new HttpConfiguration(); 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     appBuilder.UseWebApi(config); 
    } 

はどのように我々は、アプリケーションごとに複数のAppDomainを使用することができますか? Webapp.Start(...)を使用して複数のWebアプリケーションを宣言する方法は、同じポートを共有する別々のAppDomainsにありますか?または、api/{controller}/{id}の代わりにapp/api/{controller}/{id}のようなルートを定義することによって、何らかの方法でさまざまなappdomainにリクエストをルーティングする方法がありますか?

ありがとうございました

答えて

0

別々のドメインでアプリを実行するためのサポートは組み込まれていません。それぞれの新しいAppDomainを起動してからWebAppを実行するといいでしょう。

+0

つまり、AppDomainsは最小の分離を提供します。真の分離が必要な場合は、別々のプロセスを使用する方がよいでしょう。 – Tratcher

+0

私の元の投稿以来、私は様々なアプローチを試みました:1/OWINミドルウェアを使用してメインのHTTPサーバーによって呼び出されるメモリ内HTTPサーバー(テストサーバーベース)の作成。あなたの発言ごとに2つ:別のプロセスでホストされている他のHTTPサーバーと他のポートを使用してリクエストをリダイレクトするリバースプロキシの作成。 最初の実装はWebApisのために完全に機能しました。私は現在調査しているSignalRに関する問題があります...あなたはリバースプロキシを使用する提案をテストします – frblondin

+0

なぜリバースプロキシが必要ですか? http.sys/HttpListenerはあなたのためのポート共有を処理できます。 – Tratcher

関連する問題