Service Fabric ASP.Net core Предоставление надежного обслуживания с сохранением состояния Эта страница на локальном хосте не найдена - PullRequest
0 голосов
/ 18 мая 2019

Я новичок в Azure Service Fabric, я пытаюсь запустить его в Service Fabric с VS2017.

Я создал приложение Service Fabric и добавил полное надежное обслуживание ядра ASP.Net.Когда я запускаю его (без каких-либо изменений в основном приложении), я получаю сообщение об ошибке

Не удается найти эту локальную страницу (ошибка HTTP 410)

IЯ не уверен, что не хватает, может кто-нибудь помочь?

Я попытался переключиться между Kestrel и веб-слушателями, следуя ASP.NET Core Эта страница локального хоста не может быть найдена

В asp.net core startup.cs я добавил

app.UseMvc(routes => {
                routes.MapRoute(name: "default", template: "{controller}/{action=Index}/{id?}");
            });

Я ничего не изменил в lauchsettings.json

В CreateServiceReplicaListeners у меня есть (я получаю ту же ошибку и по умолчанию Kestrel listner):

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 голосов
/ 20 мая 2019

Используйте ServiceFabricIntegrationOptions.None вместо ServiceFabricIntegrationOptions.UseUniqueServiceUrl.

Последний используется с динамическими назначениями портов.

При динамическом назначении порта этот параметр предотвращает ошибочное проблема идентичности, описанная ранее.

Подробнее здесь .

Примечание. Не рекомендуется использовать HttpSys в сервисах с состоянием .

HttpSysCommunicationListener в настоящее время не предназначен для использования в службы с сохранением состояния из-за сложностей с базовым HTTP.sys функция совместного использования портов. Для получения дополнительной информации см. Следующий раздел на динамическое распределение портов с HTTP.sys. Для государственных услуг, Kestrel является рекомендуемым веб-сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...