Service Fabric ASP.Net核心提供状态可靠服务,找不到此localhost页面错误

时间:2019-05-18 18:25:11

标签: azure localhost azure-service-fabric asp.net-core-webapi

我对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>

http://localhost:8052/ enter image description here

1 个答案:

答案 0 :(得分:0)

使用ServiceFabricIntegrationOptions.None代替ServiceFabricIntegrationOptions.UseUniqueServiceUrl

后者用于动态端口分配。

  

使用动态端口分配时,此设置可防止错误   先前描述的身份问题。

更多信息here

注意:不建议在stateful服务中使用HttpSys。

  

HttpSysCommunicationListener当前不设计用于   由于底层HTTP.sys的复杂性,提供了有状态服务   端口共享功能。有关更多信息,请参见以下部分   使用HTTP.sys动态分配端口。对于有状态服务,   Kestrel是建议的Web服务器。