![](/img/trans.png)
[英]WebpackDevMiddleware in ASP.NET Core app in Azure Service Fabric
[英]How to use WebListenerCommunicationListener in Service Fabric ASP.NET Core 2
我剛剛創建了我的第一個ASP.NET Core 2 Stateless Service Fabric Reliable服務,但是我注意到的第一件事是,現在,默認情況下,使用的是在核心1.X中使用的KestrelCommunicationListener
的WebListenerCommunicationListener
。 似乎它已從服務結構aspnetcore庫中刪除。
這不會讓我在同一台物理或虛擬機上配置多個進程以在同一端口上托管Web應用程序,這被唯一的URL路徑或主機名所消除。 這些功能在Service Fabric中用於在同一群集中托管多個網站很有用。
有人知道我是否缺少某些東西嗎?
謝謝
根據SDK 2.7.198的發行說明,asp.net Core 2.0尚不支持Weblistener。
項目經理提供的答案
“在ASP.NET Core 2.0中,Microsoft.AspNetCore.Server.WebListener軟件包已與Microsoft.Net.Http.Server合並到一個名為Microsoft.AspNetCore.Server.HttpSys的新軟件包(aspnet / Announcements#211)中。還沒有集成包,因此,如果您使用的是WebListener,則暫時需要保持版本1.xx,對新Microsoft.AspNetCore.Server.HttpSys包的支持將在下一個SDK中提供。功能發布(Azure / service-fabric-aspnetcore#15)。”
根據2017年9月25日發布的SDK版本2.8.0的發行說明, 網址為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 Core 2.0中,WebListener服務器被重新打包並重命名為HttpSys。 現在可以使用HttpSys服務器的Service Fabric集成包:Microsoft.ServiceFabric.AspNetCore.HttpSys。 此程序包包含HttpSys的重命名ICommunicationListener實現:HttpSysCommunicationListener。
如果您當前正在使用WebListener並想升級到ASP.NET Core 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())) }; }
根據更新的文檔,請參閱Service Fabric可靠服務中的ASP.NET Core。
HttpSys基於Windows HTTP Server API構建。 這使用IIS使用的http.sys內核驅動程序來處理HTTP請求,並將它們路由到運行Web應用程序的進程。 這允許同一物理或虛擬機上的多個進程將Web應用程序托管在同一端口上,這由唯一的URL路徑或主機名消除了歧義。 這些功能在Service Fabric中用於在同一群集中托管多個網站很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.