我正在編寫一個應用程序在桌面計算機上進行部署,並使用ServiceStack將json服務公開給將佔用它們的中央應用程序。我正在使用ServiceStack自託管服務,並且幾乎只是跟隨ServiceStack維基例子來啓動和運行基本連接。動態IP地址桌面上的ServiceStack服務器
這是用來啓動服務器,並將其綁定
appHost.Init();
appHost.Start("http://server_ip:port/");
Windows還需要進行配置,以便非管理員可以接受傳入的請求;使用管理員命令提示符下的此命令
netsh http add urlacl=http://server_ip:port/ user=desktopMachineName\desktopUserName listen=yes
注意:這似乎很脆弱。如果appHost.Start(urlBase)命令中的urlBase與netsh命令中的urlacl參數不同,則Windows拒絕連接。順便說一句我只在Windows 8試過這個。
是否有一種替代方法,以便應用程序可以承受桌面計算機IP地址(例如由DHCP引起的變化)?
這是一個桌面環境,所以我不希望用戶爲他們的計算機設置主機名或靜態IP地址。我也試圖不要求他們在命令提示符下鍵入命令。