我正在创建一个最终将在Windows服务中托管的Nancy模块。我目前正在WPF测试应用程序中运行它。为了开始Nancy托管,我正在使用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:进行托管的机器的端口?是否有任何类型的“主机标题”我需要注意?
感谢您的帮助。
答案 0 :(得分:25)
Windows会阻止您在未经许可的情况下侦听端口。您可以以管理员身份运行流程,也可以使用“netsh”添加权限:
netsh http add urlacl url = http:// +:8080 / app user = domain \ user
“+”是一个通配符,因此它可以侦听任何IP。
通常情况下,您在安装过程中会处理后者,因此您可能希望以管理员身份运行以进行调试,然后确保安装程序设置相关权限。
答案 1 :(得分:0)
对于本地调试,请使用
http://+:8733/Design_Time_Addresses
您可以添加任何您喜欢的子目录,例如
http://+:8733/Design_Time_Addresses/myService
并在
调试http://localhost:8733/Design_Time_Addresses/myService
不以管理员身份运行IDE(Visual Studio?)。
答案 2 :(得分:0)