我使用OWIN(在Windows服務中)自我託管的Web API。據我所知,這足以讓HTTP請求來到Windows服務。我可以在本地(來自同一臺機器)訪問WebAPI URL(http://localhost/users
),但不能從其他機器訪問。我正在使用端口80,IIS停止。其他網站(託管在IIS中,在端口80上)在IIS運行時工作正常。在Windows服務中使用OWIN託管WebAPI
// 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 14年14月14日在14:08 –