複数のアプリケーション(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にリクエストをルーティングする方法がありますか?
ありがとうございました
つまり、AppDomainsは最小の分離を提供します。真の分離が必要な場合は、別々のプロセスを使用する方がよいでしょう。 – Tratcher
私の元の投稿以来、私は様々なアプローチを試みました:1/OWINミドルウェアを使用してメインのHTTPサーバーによって呼び出されるメモリ内HTTPサーバー(テストサーバーベース)の作成。あなたの発言ごとに2つ:別のプロセスでホストされている他のHTTPサーバーと他のポートを使用してリクエストをリダイレクトするリバースプロキシの作成。 最初の実装はWebApisのために完全に機能しました。私は現在調査しているSignalRに関する問題があります...あなたはリバースプロキシを使用する提案をテストします – frblondin
なぜリバースプロキシが必要ですか? http.sys/HttpListenerはあなたのためのポート共有を処理できます。 – Tratcher