У меня есть приложение ядра. net, работающее также в Windows и Linux (я использую. net время выполнения ядра> = 2.1). Чтобы лучше понять, я хотел бы предоставить конечную точку метрик (простая конечная точка HTTP GET) для Прометея, публикующего некоторые внутренние статистические данные моего приложения.
Поиск по WWW and ТАК я всегда использовал asp. net ядро. Поскольку я только хочу добавить довольно простую конечную точку HTTP GET к существующему базовому приложению. net, кажется немного излишним, портировать все приложение на asp. net.
Альтернатива Я уже подумал, чтобы написать свой собственный обработчик на основе HttpListener. Это довольно просто, когда дело доходит до простой конечной точки HTTP, но, поскольку вся информация, которую я нашел относительно SSL и Linux, была, это не поддерживается на данный момент, и мне следует go с asp. net. (https://github.com/dotnet/runtime/issues/33288#issuecomment -595812935 )
Так что мне интересно, что я не так понял! Я один такой? Уже есть хорошая библиотека, предоставляющая простой http (s) сервер для. net core?
EDIT: [решено] Как @ADyson, упомянутый в комментариях ниже, существующее приложение делает не нужно переносить на asp. net core!
Файлы проектов, созданные с помощью dotnet new web
в версии 2.1, автоматически добавляют ссылки на "Microsoft.AspNetCore.App"
и "Microsoft.AspNetCore.Razor.Design"
Когда я ссылался на мой основной проект asp. net из основного проекта. net и выполнял код, на котором размещен веб-сервис. В итоге я получил System.IO.FileNotFoundException
с указанием "Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Core'"
.
Microsoft.AspNetCore.App
метапакет также ссылается на Microsoft.AspNetCore.MVC
! Таким образом, исполняющая сборка также должна ссылаться на этот метапакет. Это наблюдение поразило меня, что использование ядра asp. net делает все мое приложение построенным вокруг Microsoft.AspNetCore.App
.
После удаления этих ссылок и добавления только ссылки на "Microsoft.AspNetCore"
все работает как положено.
После проверки сгенерированных файлов проекта из dotnet new web
в версии 3.1 эти ссылки не были добавлены. Это не проблема для людей, использующих более новые версии do tnet!