2011-12-17 60 views
15

我正在创建一个最终将托管在Windows服务内部的南希模块。我目前正在WPF测试应用程序中运行它。要启动南希托管,我使用Nancy.Hosting.Self,并呼吁:远程访问南希自助主机

nancyHost = new Nancy.Hosting.Self.NancyHost(new Uri("http://localhost:8080")); 
nancyHost.Start(); 

在我的本地机器我可以去一个网页浏览器并输入http://localhost:8080到地址栏访问我的模块。

如果我去另一台机器,我无法访问该服务。我的Windows防火墙已关闭。

如果我使用baseUri中localhost以外的任何东西启动主机,则在调用nancyHost.Start()时会出现“访问被拒绝”异常。

有什么,我失踪?我应该能够从任何机器访问Nancy模块,只要我知道IP:端口到机器进行托管?有没有我需要注意的任何类型的“主机标题”?

感谢您的帮助。

回答

24

Windows将阻止您在未经许可的情况下侦听端口。您可以运行过程作为管理员,或添加允许使用 “的netsh”:

的netsh的http添加urlacl URL = HTTP:// +:8080 /应用程序用户=域\用户

的“+”是通配符,因此它可以侦听任何IP。

通常情况下,您在安装过程中会处理后者,因此您可能想以管理员身份运行以进行调试,然后确保您的安装程序设置相关权限。

+0

只是想包括一个链接到的意见!您发布在Google群组中... https://groups.google.com/forum/#!topic/nancy-web-framework/UnvrNss9pyM 再次感谢, Brian – 2011-12-20 02:41:01

0

对于本地调试,使用

http://+:8733/Design_Time_Addresses 

你可以添加你喜欢的任何子目录,例如

http://+:8733/Design_Time_Addresses/myService 

,并在

http://localhost:8733/Design_Time_Addresses/myService 

调试不运行的IDE(可视化Studio?)作为管理员。

0

看看这个:Self-Hosting-Nancy

主机配置:UrlReservations下添加代码:

var configuration = new HostConfiguration 
     { 
      UrlReservations = new UrlReservations { CreateAutomatically = true } 
     }; 

OK,你可以创建你的主机〜