Нэнси не удается выполнить загрузку с резервированием URL-адресов с подстановочными знаками.

У меня есть настольное приложение, которое самостоятельно размещает веб-сервер NancyFX. Поскольку это настольное приложение, нам необходимо разрешить динамические IP-адреса, поэтому мы зарегистрировали URL-адрес, используя параметр подстановочного знака в netsh, например:

netsh http add urlacl url=http://+:1234/ user=Everyone

Однако, когда это приложение запускается под учетной записью без прав администратора, возникает следующее исключение.

The Nancy self host was unable to start, as no namespace reservation existed for the provided url(s).

Please either enable UrlReservations.CreateAutomatically on the HostConfiguration provided to 
the NancyHost, or create the reservations manually with the (elevated) command(s):

netsh http add urlacl url=http://192.168.1.90:1234/ user=Everyone

Я пробовал много комбинаций регистраций с подстановочными знаками, все с одним и тем же результатом. Я также посмотрел на регистрацию подстановочного знака при загрузке Нэнси, но из-за того, что Нэнси использовала типы Uri, это было недопустимо.

Я исходил из того, что, используя регистрацию подстановочных знаков, я зарегистрировал любой IP-адрес, который будет использоваться. Но Нэнси, похоже, нужен зарегистрированный конкретный IP-адрес.

Я был бы очень признателен, если бы кто-нибудь сказал мне, почему регистрация с подстановочными знаками не будет работать с Нэнси, или, что еще лучше, как заставить ее работать с Нэнси.


person In-flux    schedule 26.08.2014    source источник
comment
Насколько я знаю, это проблема .NET. Попробуйте хостинг с Owin, используя сейчас nuget.org/packages/Nowin, это решило мою проблему с собой. хостинг без прав администратора.   -  person Phill    schedule 26.08.2014
comment
Спасибо, Фил, я попробую дать Овину шанс.   -  person In-flux    schedule 27.08.2014


Ответы (1)


Старый вопрос, но если кто-то столкнется с этим, Нэнси SelfHost позволяет автоматически создавать резервирование URL-адресов с помощью объекта HostConfiguration.

Затем URL автоматически резервируется при запуске.

//Nancy configuration
HostConfiguration hostConfig = new HostConfiguration()
{
    UrlReservations = new UrlReservations()
    {
        //create URL reservations automatically
        CreateAutomatically = true
    }
};

//Uri
Uri uri = new Uri("http://localhost:9999");

using (var host = new NancyHost(hostConfig, uri))
{
    host.Start();

    Console.WriteLine("Running self-hosted server ...");
    Console.WriteLine("Press [Enter] to close the application.");
    Console.ReadLine();
}
person kalenwatermeyer    schedule 04.10.2017