У меня есть собственный веб-API с использованием OWIN (внутри службы Windows). Насколько я понимаю, этого достаточно, чтобы HTTP-запросы приходили на службу Windows. Я могу удалять URL WebAPI (http://localhost/users
) локально (с той же машины), но не с других машин. Я использую порт 80, IIS остановлен. Другие веб-сайты (размещенные в IIS, на порту 80) работают нормально, когда IIS работает.
//В службе 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-запросы. Просто предположите.)