Пустые ответы с использованием собственного хоста Нэнси + TopShelf

Я пытаюсь использовать Нэнси (используя Self Hosting с пакетами nuget для просмотра Razor) внутри услуга Topshelf. Я размещаю его на http: // localhost: 8585 / , и он отлично работает, пока я нахожусь в режиме отладки или вызываю свой исполняемый файл напрямую. Модуль Nancy отлично обслуживает изображение бритвы.

Затем я устанавливаю приложение:

myapp.exe install

Когда я запускаю службу, кажется, что она работает нормально, и ошибок нет. Затем, когда я перехожу к http: // localhost: 8585 / в браузере, я получаю пустой ответ. Есть идеи, почему?

Прежде чем я начну размещать службу на Topshelf, я запускаю Нэнси:

_nancyHost = new NancyHost(_baseUri);
_nancyHost.Start();

После этого служба верхней полки настраивается и запускается следующим образом:

using (Container)
{
    var host = HostFactory.New(config =>
    {
        config.EnableDashboard();
        config.AfterStartingServices(() => Console.WriteLine("Done starting..."));
        config.Service(s =>
        {
            s.SetServiceName("EventHandlerService");
            s.ConstructUsing(c => Container.Get());
            s.WhenStarted(n => StartService(n, stopwatch));
            s.WhenStopped(n => StopService(n, stopwatch));
        });
        config.RunAsLocalSystem();
        config.SetDescription("A service for processing events.");
        config.SetDisplayName("EventHandlerService");
        config.SetInstanceName("EventHandlerService");
        config.SetServiceName("EventHandlerService");
    });
    host.Run();
}

Я использую ninject, а StartService и методы StopService - это просто функции, которые выводят текущее значение секундомера.ElapsedMilliseconds.

Вот конфигурация моего модуля Nancy:

Get["/"] = parameters =>
{
    var indexViewModel = new IndexViewModel { CurrentDateTime = DateTime.Now, WorkLog = _service.WorkLog };

    return View["index", indexViewModel];
};

Get["/js/{file}"] = p =>
{
    return Response.AsJs("scripts/" + p.file as String);
};

Get["/style/{file}"] = p =>
{
    return Response.AsCss("content/themes/base/" + p.file as String);
};

Get["/img/{file}"] = p =>
{
    return Response.AsImage("content/themes/base/images/" + p.file as String);
};

Я использую все значения по умолчанию в Nancy, кроме частей Self Hosting и Razor. Есть идеи, что может происходить?

Я также попробовал netsh http add urlacl url = http: // +: 8585 / user = \ Everyone , и это, похоже, не повлияло на поведение.

5
задан John Nelson 24 June 2011 в 14:27
поделиться