我对Azure Service Fabric还是陌生的,我正在尝试使用VS2017在Service Fabric上运行它。
我创建了一个服务结构应用程序,并添加了ASP.Net核心状态完全可靠的服务。 当我运行它(不对核心应用程序进行任何更改)时,出现错误
找不到该本地主机页面(HTTP错误410)
我不确定缺少什么,有人可以帮忙吗?
我尝试在Kestrel和Web侦听器之间切换 跟随ASP.NET Core This localhost page can’t be found
在我添加的asp.net核心startup.cs中
app.UseMvc(routes => {
routes.MapRoute(name: "default", template: "{controller}/{action=Index}/{id?}");
});
我没有更改lauchsettings.json中的任何内容
在我拥有的CreateServiceReplicaListeners中(我在默认的Kestrel列表器中也遇到相同的错误):
return new ServiceReplicaListener[]
{
new ServiceReplicaListener(serviceContext =>
new HttpSysCommunicationListener(serviceContext, "ServiceEndpoint", (url, listener) =>
{
ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting web server {url}");
return new WebHostBuilder()
.UseHttpSys()
.ConfigureServices(
services => services
.AddSingleton<StatefulServiceContext>(serviceContext)
.AddSingleton<IReliableStateManager>(this.StateManager))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.UseUniqueServiceUrl)
.UseUrls(url)
.Build();
}))
};
**In serviceManifest.xml**
<Resources>
<Endpoints>
<Endpoint Port="8052" Protocol="http" Name="ServiceEndpoint" Type="Input"/>
</Endpoints>
</Resources>
答案 0 :(得分:0)
使用ServiceFabricIntegrationOptions.None
代替ServiceFabricIntegrationOptions.UseUniqueServiceUrl
。
后者用于动态端口分配。
使用动态端口分配时,此设置可防止错误 先前描述的身份问题。
更多信息here。
注意:不建议在stateful服务中使用HttpSys。
HttpSysCommunicationListener当前不设计用于 由于底层HTTP.sys的复杂性,提供了有状态服务 端口共享功能。有关更多信息,请参见以下部分 使用HTTP.sys动态分配端口。对于有状态服务, Kestrel是建议的Web服务器。