我阅读了几个相关的问题,这些问题与从远程计算机访问nency有关。但是,我无法通过自己的电脑访问nancy。
这是我的代码:
class Program
{
static void Main(string[] args)
{
HostConfiguration hostConfigs = new HostConfiguration();
//hostConfigs.RewriteLocalhost = true;
hostConfigs.UrlReservations.CreateAutomatically = true;
using (var host = new NancyHost(hostConfigs, new Uri("http://localhost:1234")))
{
host.Start();
Console.WriteLine("Running on http://+:1234");
Console.WriteLine(host.ToString());
}
Console.ReadKey();
}
}
public class HelloModule : NancyModule
{
public HelloModule()
{
Get["/"] = parameters => Response.AsJson("Success");
Get["/nancy"] = parameters => Response.AsJson("Success");
}
}
}
我是PC上的管理员,并且没有任何异常。如果我在浏览器中键入http://localhost:1234或http://127.0.0.1:1234(使用/ nancy和不使用/ nancy),则期望得到响应。但是,我确实得到了任何答复。此外,在使用netstat -ano生成的列表中,我在端口1234上看不到任何进程列表。我通过nuget下载了最新版本的nancy。
你有什么主意吗?
答案 0 :(得分:2)
以下行应按预期工作:
var host = new NancyHost(hostConfigs, new Uri("http://localhost:1234"))
但是using语句会发生什么,就是在(
和)
之间指定的任何内容(简单放置)都放在同一using语句的右括号(}
)之后。因此,实际发生的情况是,在创建主机,启动主机并在向控制台打印一些行之后立即将其丢弃。
简单地将ReadKey
调用移至using语句内。在那里,它会一直等到按下某个键为止,并且在该事件发生后将处置主机。