Я пишу приложение для развертывания на настольных компьютерах и использую ServiceStack для предоставления услуг json центральному приложению, которое будет их использовать. Я использую самостоятельный хостинг ServiceStack, и я просто следил за примерами вики ServiceStack, чтобы установить и запустить базовое подключение.
Это используется для запуска сервера и его привязки.
appHost.Init();
appHost.Start("http://server_ip:port/");
Windows также необходимо настроить так, чтобы неадминистратор мог принимать входящие запросы; с помощью этой команды из командной строки администратора
netsh http add urlacl=http://server_ip:port/ user=desktopMachineName\desktopUserName listen=yes
примечание: это кажется хрупким. Если urlBase в команде appHost.Start(urlBase) отличается от параметра urlacl в команде netsh, Windows отклоняет подключения. Кстати, я пробовал это только с Windows 8.
Есть ли альтернативный подход, чтобы приложение могло выдерживать изменения IP-адреса настольных компьютеров (например, вызванные DHCP)?
Это среда рабочего стола, поэтому я не ожидаю, что пользователи будут настраивать имена хостов или статические IP-адреса для своих компьютеров. Я также пытаюсь не требовать от них ввода команд в командной строке.