服務織物樣品如單詞計數的Web應用程序監聽端口在這樣的子路徑部署在Azure服務織物Asp.Net核心應用:如何使用子路徑在集羣上共享相同的端口
http://localhost:8081/wordcount
這種配置的代碼是:(見GitHub上https://github.com/Azure-Samples/service-fabric-dotnet-getting-started/blob/master/Services/WordCount/WordCount.WebService/WordCountWebService.cs文件)
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new[]
{
new ServiceInstanceListener(initParams => new OwinCommunicationListener("wordcount", new Startup(), initParams))
};
}
有了這個配置,我們可以使用相同的端口在同一個集羣上部署的其他Web應用程序(8081)
http://localhost:8081/wordcount
等。
但Asp.Net Core項目模板是不同的,我不知道如何添加偵聽器配置的子路徑。
下面的代碼是我們所擁有的項目模板(Program.cs中類WebHostingService):
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new[] { new ServiceInstanceListener(_ => this) };
}
Task<string> ICommunicationListener.OpenAsync(CancellationToken cancellationToken)
{
var endpoint = FabricRuntime.GetActivationContext().GetEndpoint(_endpointName);
string serverUrl = $"{endpoint.Protocol}://{FabricRuntime.GetNodeContext().IPAddressOrFQDN}:{endpoint.Port}";
_webHost = new WebHostBuilder().UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseUrls(serverUrl)
.Build();
_webHost.Start();
return Task.FromResult(serverUrl);
}
語義是有點不同,但都在同一個點結束。 的問題是,即使我想補充的子路徑在的serverUrl結束但這並沒有工作和web應用程序總是響應根http://localhost:8081/
見我如何下面的代碼片段嘗試:
string serverUrl = $"{endpoint.Protocol}://{FabricRuntime.GetNodeContext().IPAddressOrFQDN}:{endpoint.Port}/app1";
如何使用asp.net核心實現與「經典」網絡應用程序相同的結果?
我們的目標是在Azure上發佈的80端口,讓用戶像一個更好的體驗:
謝謝你很多!
https://docs.microsoft。com/en-us/azure/service-fabric/service-fabric-reliable-services-communication-aspnetcore#服務結構集成中間件 – LaPuyaLoca
偉大的加法@LaPuyaLoca –