以下代码的行为很奇怪,我试图理解原因:
NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(8080);
EmbeddableDocumentStore db = new EmbeddableDocumentStore();
db.DataDirectory = @"C:\Google Drive\TradingFramework\RavenDatabase\";
db.UseEmbeddedHttpServer = true;
db.Initialize();
bool halt = true;
Console.WriteLine("Read to try server");
Console.ReadLine();
“bool halt”上面的代码初始化了一个 RavenDB 数据库,但它与这个问题的目的无关。我跑了2个场景:
a) 在 VS2012 中的 Debug 模式下设置一个断点
bool halt = true;
。那时我应该可以访问在 localhost:8080 上侦听的已创建 Web 服务器。事实并非如此。即使在断点之前将等待循环放入代码中也没有什么不同,Thread.Sleep(xxx)
.b)我删除了断点,代码执行暂停并在 line 处等待用户输入
Console.ReadLine();
。在这种情况下,位于 localhost:8080 的服务器会响应并且工作正常。
为什么会这样?为什么当我设置断点 vs Console.Readline() 时某些东西没有执行?请注意,我只是在测试/开发,但我试图了解它有什么不同?我一直认为 a) 和 b) 是一回事,它会中断代码执行。