直到我测试了几次,我才相信这一点,但它真的发生了。
TLDR :当PowerShell处于“选择”模式时,通过powershell启动的Rails服务器将不会提供页面。
powershell中是否有一些设置会阻止它这样做?我可以看到在蝙蝠运行过程中选择文本时有用,但是当它停止我的服务器时它正在翻转令人讨厌。
答案 0 :(得分:7)
打开一个通常会启动rails的PowerShell窗口。打开窗口的属性对话框,然后在选项选项卡上取消选择 QuickEdit Mode 。
答案 1 :(得分:0)
我曾评论认为这只是控制台系统的一个普遍问题,它可能仍然是因为我无法看到powershell如何涉及这里,因为它只是一个父进程,但它似乎与正在观看的代码隔离输入。我认为rails服务器可能在其主循环期间寻找输入,并且可能在控制台中选择文本阻止了这一点。采用这个简单的脚本循环 - 但不注意输入 - 在一个线程上,写入调试监听器:
ps> $i = 0
ps> while (1) { sleep -seconds 1; [diagnostics.trace]::writeline("ping: $i"); $i++ }
现在,运行sysinternals / microsoft的免费DbgView工具来观察输出。我使用的是单独的工具,而不是写入控制台,因为这更像是在后台向套接字提供网页的场景。你可以从:
获得DbgViewhttp://technet.microsoft.com/en-us/sysinternals/bb896647
当我在控制台中选择文本时,脚本不会暂停。我甚至塞进钥匙缓冲区的支票,它仍然没有停止。
我认为Rails服务器正在进行某种密钥检查,这种密钥检查会以某种方式被阻止并干扰其处理请求的能力。它看起来很迟钝,但即使我填写了[console]::keyavailable
ps> while (1) {
>> sleep -seconds 1;
>> [diagnostics.trace]::writeline("ping: $i");
>> $i++
>> $dummy = [console]::keyavailable
>> }
看起来这是Rail的错,虽然当然是无意的。