Я не прошу совета по лучшей практике, так как есть многочисленные сообщения в блогах и учебные пособия по этой теме по всему Интернету.Каков правильный способ самостоятельного размещения веб-API?
Я прошу из-за путаницы, поскольку Microsoft внесла большой вклад в процедуру самостоятельного хостинга, и каждый учебник, который я нахожу, использует другой, устаревший или незнакомый подход.
Моя цель состоит в том, чтобы создать самодостаточно Web 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 , созданием авторизации и т.д., только потому, что каждый учебник я найти по этим темам referr к самодостаточно методам не используются Owin. Но AFAIK, OWIN (Katana) - это предпочтительный подход Microsoft для достижения самостоятельного хостинга.
Как новичок, я совершенно смущен и беспомощен!
Редактировать: 4 upvotes, 1 fav и 30 просмотров всего за 6 минут, но ответа еще нет. Не могу сказать, если я делаю здесь гениальный кофе или если это просто невероятный тупой вопрос.
Комментарий к редактированию: Я предполагаю, что это потому, что вы наступаете здесь довольно неплохо. OWIN как предпочтительный подход MS не так давно, я прав? Я также не уверен, что на самом деле это то, что вы говорите, «очень простые задачи». Возможно, ответ на этот вопрос: «Это невозможно сделать. Используйте IIS». – Nilzor
@ Нилзор. Да, это тоже может быть. Я уже думал об использовании IIS для публикации веб-API, но проблема в том, что мне нужна постоянно работающая служба для выполнения задач с интенсивным использованием ЦП. Я мог бы отделить службу от api, выполнив хост WCF и получив доступ к нему через, например, веб-приложение MVC (которое также предлагает API), но клиент WCF в MVC также является настоящей болью в моем опыте. – Acrotygma