2015-11-06 60 views
1

我正在创建一个简单的Windows服务,承载Nancy实例以提供其内部数据的视图。在本地计算机上使用浏览器时,一切都按预期工作;我看到它提供的观点。但是,我找不到任何理由不能从远程浏览器访问(在同一网络上)。从远程浏览器访问只需延迟一段时间; IE将最终显示“此页面无法显示;” iPad上的Safari会在一段时间内显示部分进度栏,并且什么也不做。如何远程访问自主托管的Nancy服务?

我使用所有本地IP进行绑定,而不仅仅是本地主机。 我在此链接使用GetUriParams()函数来发现绑定的所有本地IP地址。 http://www.codeproject.com/Articles/694907/Embed-a-web-server-in-a-windows-service

_nancyHost = new NancyHost(GetUriParams(port)); 
_nancyHost.Start(); 

我在本页发现绑定到本地主机仅适用于本地访问。 http://forums.asp.net/t/1881253.aspx?More+SelfHost+Documentation

该功能发现的IP地址适用于以前安装VMware播放器的以太网适配器,无线适配器和两个VMware网络适配器。我试过了通过计算机名和文字IP对以太网适配器进行远程访问。

我向urlacl列表添加了条目。 我已经使用了netsh http add urlacl命令,在很多地方建议,包括在此链接:Remote access to a Nancy Self Host

如果我执行netsh http show urlacl,我看到我使用该端口的条目。

我尝试了不同的南希CONFIGS 如果我设置UrlReservations.CreateAutomatically南希配置选项,我会得到安全提示,这允许后,我看到新的条目netsh http show urlacl列表输出为所有的本地IP地址,但它仍然不允许远程访问。我也尝试了RewriteLocalHost选项true和false。

我试着http://+:3684http://*:3684开始南希(这会从Uri()解析除外),并与http://0.0.0.0:3684(后者从AddAllPrefixes()HttpListener()除外)。

我加入了EXE到Windows防火墙 我已经在此描述创建的防火墙例外:https://msdn.microsoft.com/en-us/library/ms733768.aspx

相关的规则显示私人,公共和“任意”与TCP和UDP每一列。

我试着在不同的环境中运行Nancy。我已经运行了以下代码:作为本地系统运行的Windows服务,Visual Studio 2013调试器中的控制台应用程序以及以管理员身份运行的控制台应用程序。

我想这是一个简单的安全设置,但我已经搜索并搜索并尝试了几天的各种事情。

我错过了什么?

回答

2

这个答案提供了我需要的线索。 https://stackoverflow.com/a/21364604/1139376

这是因为HttpListener是建立在HTTP.SYS的顶部,这将听你代表你的程序指定的端口上。

这不是我的EXE做实际的聆听。我所需要做的就是将一个传入规则添加到为“系统”程序设置的Windows防火墙以及我正在使用的特定TCP端口。这允许远程访问。

-1

使用HostConfiguration并让Nancy自动为您预订网址。

var config = new HostConfiguration 
{ 
    RewriteLocalhost = true, 
    UrlReservations = new UrlReservations { CreateAutomatically = true } 
}; 
host = new NancyHost(new Uri("http://localhost:8080"), new DefaultNancyBootstrapper(), config); 
host.Start(); 

请注意,这将强制ACL为新端口创建网络规则(如果它们尚不存在)。

+0

我做到了。当我不这样做时,南希会在Start上抛出异常。当我尝试进行测试时,Nancy添加了以下条目。 '保留网址:HTTP://土星:8378/ 用户:\大家 听:是 代表:没有 SDDL:d:(A ;; GX ;;; WD) 保留的URL:http:/ /192.168.0.21:8378/ 用户:\大家 听:是 代表:没有 SDDL:d:(A ;; GX ;;; WD) 保留网址:http://192.168.0.16:8378/ 用户:\ Everyone 收听:是 代表:否 SDDL:D:(A ;; GX ;;; WD) – cdburgerjr

相关问题