Подтвердить что ты не робот

Каков правильный способ самостоятельного размещения веб-API?

Я не прошу совета по лучшей практике, так как есть многочисленные сообщения в блогах и учебные пособия по этой теме по всему Интернету.

Я прошу из-за путаницы, так как Microsoft сделала много изменений во всей процедуре самостоятельного хостинга, и каждый учебник, который я нашел, использует другой, устаревший или незнакомый подход.

Моя цель - создать самообслуживаемый веб-API в устаревшей службе Windows для управления различными долгосрочными задачами от клиента, отличного от Windows, например, приложения для Android, где интеграция WCF/SOAP-клиента действительно может быть PITA.

Мне известно о том, что WCF может предлагать услугу RESTful, но поскольку веб-API действительно подходит для такой задачи, я думал, что сделал это.

Вот как я сейчас запускаю свой API, используя OWIN (Katana):

public class ApiBootstrap {

    var httpConfiguration = new HttpConfiguration();
    // ... configure routes etc.

    appBuilder.UseWebApi(httpConfiguration);     // appBuilder = IAppBuilder
    var disposable = WebApp.Start<ApiBootstrapper>(_myBaseUri);

}

Но большинство руководств идут по другому подходу:

var config = new HttpSelfHostConfiguration("http://localhost:999");
// ... configure routes etc..

var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();

Теперь я понимаю, что класс HttpSelfHostServer от System.Web.Http.SelfHost и не использует OWIN, и оба работают нормально.

Но я боюсь в течение нескольких дней, чтобы достичь очень простых задач, таких как обеспечение соединения с использованием SSL, создание авторизации и т.д., только потому, что каждый учебник, который я нахожу в этих темах, ссылается на собственный метод, не использующий OWIN. Но AFAIK, OWIN (Katana) - это предпочтительный подход Microsoft для достижения собственного хостинга.

Как новичок, я совершенно смущен и беспомощен!

Изменить: 4 upvotes, 1 fav и 30 просмотров всего за 6 минут, но ответа еще нет. Не могу сказать, если я делаю здесь гениальный кофе или если это просто невероятный тупой вопрос.

4b9b3361

Ответ 1

HttpSelfHostServer теперь отмечен как наследие на Nuget. Тем не менее, Owin HTTPListener был только RTM в течение довольно короткого периода времени.

Кроме того, часть намерения Owin заключается в том, чтобы настроить промежуточное программное обеспечение одинаково независимо от того, как вы размещаете. Таким образом, вы вряд ли увидите множество статей, ориентированных на хостинг Owin HttpListener, потому что это не имеет значения, какой хост вы используете.

В настоящее время OwinHttpListener использует стандартный .net HttpListener под обложками, что на самом деле является тем же, что и HttpSelfHostServer. Поэтому такие вещи, как SSL, должны быть настроены примерно так же.

Что касается проверки подлинности, взгляните на Microsoft.Owin.Security, скорее всего все, что вам нужно, находится там.