Возможно ли использовать selfhost для службы WebApi без указания локального порта следующим образом:
Microsoft.Owin.Hosting.WebApp.Start<Startup1>("http://localhost:9000")
Я думаю, что это может быть неприятно при развертывании для клиентов (например, проблемы с брандмауэром или конфликты с другими службами, которые занимают один и тот же порт).
Я ничего не нашел. В каждом уроке/примере используется порт.
Без Owin это возможно с помощью сервиса WebApi.
Изменение: я хочу, чтобы служба вообще не использовала порт. Сервер должен запускать "inmemory", как это делается в этом блоге: asp-net-web-api-in-memory-hosting/
Возможно, это решение: owin-memory-integration-testing
Это в пакете Microsoft.Owin.Testing.
Это позволит нам создать сервер с памятью, который будет принимать HTTP-запросы и выдает ответы HTTP, не касаясь сетевого стека (полностью в процессе), который является очень эффективным и чрезвычайно быстрым.
Переместите эту строку в файл web.config
:
<appSettings>
<add key="_API_URL" value="http://localhost:9000">
</appSettings>
Затем вы можете использовать его в своем коде:
Microsoft.Owin./*...*/(ConfigurationManager.AppSettings["_API_URL"]);
Любые настройки в файле конфигурации могут быть преобразованы во время или после развертывания без необходимости изменения кода или перестройки. Пусть "ИТ-администратор" обрабатывает брандмауэр.