У меня есть собственный веб-API с использованием OWIN (внутри службы Windows). Насколько я понимаю, этого достаточно, чтобы HTTP-запросы приходили на службу Windows. Я могу удалять URL WebAPI (http://localhost/users
) локально (с той же машины), но не с других машин. Я использую порт 80, IIS остановлен. Другие веб-сайты (размещенные в IIS, на порту 80) работают нормально, когда IIS работает.Хостинг WebAPI с использованием OWIN в службе windows
// В службе окон:
public partial class Service1 : ServiceBase
{
...
...
protected override void OnStart(string[] args)
{
Console.WriteLine("Starting service...");
string baseAddress = "http://localhost:80/";
WebApp.Start<Startup>(baseAddress); //This is OWIN stuff.
}
...
...
}
public class Startup
{
// This code configures Web API. The Startup class is specified as a type
// parameter in the WebApp.Start method.
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
var config = new HttpConfiguration();
WebApiConfig.Register(config);
appBuilder.UseWebApi(config);
}
}
мне нужно сделать что-то еще, чтобы получить эту работу с другими машинами делать? (У меня такое ощущение, что входящие HTTP-запросы не пересылаются службе Windows, а только в IIS. Когда вы нажмете локально, возможно, он не проходит через модуль ОС, который слушает HTTP-запросы.)
Вы можете проверить в этом примере проект GitHub: https://github.com/danesparza/OWIN-WebAPI-Service –
Только для справок в будущем: например, комментарий justmara ниже: вы можете просто запустить его по адресу http: // *: 80 /, чтобы он ответил по каждому доступному адресу. - justmara 27 мая 14 в 14:08 –