2017-08-15 9 views
0

初めてのASP.NET Core 2ステートレスサービスファブリック信頼性の高いサービスを作成しましたが、最初に気付くのは、デフォルトではKestrelCommunicationListener insted of WebListenerCommunicationListenerが使用されていますコア1.X。それは、サービスファブリックaspnetcoreライブラリから削除されたようです。Service Fabric ASP.NET Core 2でWebListenerCommunicationListenerを使用する方法

同じ物理マシンまたは仮想マシン上の複数のプロセスを、同じポート上でWebアプリケーションをホストするように構成することはできません。一意のURLパスまたはホスト名で明確になります。これらの機能は、同じクラスタ内の複数のWebサイトをホスティングするためのService Fabricで役立ちます。

誰かが私が何かを逃しているのか、それとも回避策があるのか​​知っていますか?

おかげで

+0

WebListenerの名前をHttpSysListenerに変更しませんでしたか? https:// github。com/Azure/service-fabric-aspnetcore/issues/15 – Mardoxx

答えて

2

回答Microsoft.AspNetCore.Server.WebListenerパッケージはと呼ばれる新しいパッケージにMicrosoft.Net.Http.Serverと合併されましたMicrosoft.AspNetCore.Server.HttpSys(aspnet/Announcements#211)。Service Fabricにはまだこのための統合パッケージがないため、WebListenerを使用している場合は、当面はバージョン1.xxのままにする必要があります。新しいMicrosoft.AspNetCore.Server.HttpSysパッケージのサポートは、次のSDK機能リリース(Azure/service-fabric-aspnetcore#15)に届きます。

1

SDKバージョン2.8.0のリリースノート(2017年9月25日からhttps://msdnshared.blob.core.windows.net/media/2017/10/Microsoft-Azure-Service-Fabric-Release-Notes-SDK-2.8.0-Runtime-6.0.0.pdf)によれば、これが利用可能になりました。リリースノートパー

ASP.NETコア2.0には、WebListenerサーバはリパックとHttpSysへ と改名されました。 HttpSys サーバー用のサービスファブリック統合パッケージが利用可能になりました:Microsoft.ServiceFabric.AspNetCore.HttpSys。 このパッケージには、HttpSys:HttpSysCommunicationListenerの名前が変更されたICommunicationListener実装 が含まれています。

あなたが現在WebListenerを使用して、ASP.NET コア2.0にアップグレードMicrosoft.ServiceFabric.AspNetCore.HttpSysパッケージ 代わりのMicrosoft.ServiceFabric.AspNetCore.WebListenerパッケージを使用したい場合。

protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners() { 
    return new ServiceInstanceListener[] 
    { 
    new ServiceInstanceListener(serviceContext => 
     new HttpSysCommunicationListener(serviceContext, "ServiceEndpoint", (url, listener) => 
     new WebHostBuilder() 
      .UseHttpSys() 
      .ConfigureService(
      service => services 
       .AddSingleton<StatelessServiceContext>(serviceContext)) 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None) 
      .UseStartup<Startup>() 
      .UseUrls(url) 
      .Build())) 
    }; 
} 
1

更新ドキュメントによると、ASP.NET Core in Service Fabric Reliable Services

HttpSysを参照してくださいWindowsのHTTPサーバーAPI上に構築されています。これは、IISで使用されるhttp.sysカーネルドライバを使用してHTTP要求を処理し、Webアプリケーションを実行しているプロセスにそれらをルーティングします。 これにより、同じ物理マシンまたは仮想マシン上の複数のプロセスが、同じポート上のWebアプリケーションをホストし、一意のURLパスまたはホスト名によって明確になります。これらの機能は、同じクラスタ内の複数のWebサイトをホスティングするためのService Fabricで役立ちます。

関連する問題