У меня есть Service Fabric с сервисом без сохранения состояния, который следует шаблону шлюза, который прослушивает HTTP-запросы и затем перенаправляет их в бизнес-логику в кластере. Это прекрасно работает. Сейчас пытаюсь добавить поддержку HTTPS. В проекте шлюза используется ASP.NET Core 1.0 (на NET461), и я использую SDK 5.1.150 для Service Fabric, обновление 3 для Visual Studio 2015. Если я запускаю проект шлюза вручную (установлен как запускаемый проект), я могу нажать Конечная точка HTTPS, но когда я запускаю ее через кластер, порт открыт, но сразу закрывается, я получаю «localhost неожиданно закрыл соединение». в Chrome. Вот мой код запуска:
builder
.UseKestrel(options =>
{
options.NoDelay = true;
options.ThreadCount = 1024;
if (sslCert != null)
{
options.UseHttps(sslCert);
}
})
.UseUrls("http://*:5402", "https://*:5403")
.UseContentRoot(System.IO.Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.Build()
.Run();
Что может быть уникальным, так это то, что я пытаюсь использовать Kestrel, но я следовал образцу, использующему это (за исключением того, что образец не использовал HTTPS). Переменная sslCert установлена, опять же, если я запустил ее с этим проектом в качестве проекта запуска в VS, тогда я смогу обрабатывать запросы HTTPS.
Я настроил конечную точку в кластере, но, похоже, это не имеет значения, я все равно могу попасть в порт tcp, если я его оставлю. Любые предложения / образцы?