Self hosted OWIN and urlacl

kay.one picture kay.one · May 20, 2013 · Viewed 22.9k times · Source

I've created a self hosted Nancy/SignalR application self-hosted in OWIN using Microsoft.Owin.Host.HttpListener and Microsoft.Owin.Hosting

Things work perfectly fine locally but as soon as I try to use anything but localhost to access the app I get a HTTP Error 503. The service is unavailable error. I can't even access the app using 127.0.0.1 or the machine name.

I've tried adding the port to urlacl using

http add urlacl http://*:8989/ user=EVERYONE but doesn't seem to do anything.

here are the OWIN start options that I've tried,

        var options = new StartOptions
        {
            Url = "127.0.0.1",
            App = GetType().AssemblyQualifiedName,
            Port = _configFileProvider.Port
        };

    var options = new StartOptions
        {
            App = GetType().AssemblyQualifiedName,
            Port = _configFileProvider.Port
        };

here is the source code for the file that starts and stops the server https://github.com/NzbDrone/NzbDrone/blob/vnext/NzbDrone/Owin/OwinHostController.cs

Answer

kay.one picture kay.one · May 21, 2013

so it turns out you need to pass in a url into StartOptions in the same format as the urlacl.

Changing the start options to the code below fixed the problem. now the app is accessible across the network.

  var options = new StartOptions("http://*:8989")
  {
      ServerFactory = "Microsoft.Owin.Host.HttpListener"
  };