尝试运行WEBrick for Rails应用程序,但不断收到错误:“每个套接字只使用一次......”

时间:2011-09-28 19:31:45

标签: ruby-on-rails-3 postgresql webrick

信息:Rails 3.0.9; Ruby 1.8.7; Windows 7

我刚刚在我的Rails环境中从mysql切换到postgresql,并且当我尝试在端口3000上运行rails s时,我无法解决这个错误:

WARN TCPServer错误:通常只允许使用每个套接字地址(协议/网络地址/端口)。 - bind(2)

我正在使用Dropbox在两台计算机之间来回开发,一切都在家用电脑上正常工作。但在工作中,这个问题让我发疯了。

我在互联网上研究了这个问题,我觉得没有任何答案适用。显而易见的答案是港口被占用。但是我无法识别我的进程中的任何内容,或者在命令提示符中使用netstat来使用此端口。

这个链接http://oldwiki.rubyonrails.org/rails/pages/MysteryProcessHoldsOntoWebrickPort完全描述了我的问题,但没有一个解决方案有效。我尝试使用-p选项将端口更改为3001,但后来我收到此错误:

无法连接到服务器:连接被拒绝(0x0000274D / 10061)服务器是否在主机上运行“???”并接受端口5432上的TCP / IP连接?

无法连接到服务器:连接被拒绝(0x0000274D / 10061)服务器是否在主机上运行“???”并接受端口5432上的TCP / IP连接?

如果我尝试运行rake db:migrate,也会出现同样的消息。

除了我已经提到的方法之外,我不知道如何识别和纠正这个错误的原因。

我对编程有些新意,所以我可能会忽略一些东西。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我的问题版本非常相似。 Rake db:migrate没有迁移,它运行并且没有错误或迁移消息。 ,问题似乎是rake 9.2.2和rake 8.7 abbr之间的差异。如果你运行bundle exec rake db:migrate,它可能会工作,但在我的情况下并非如此。我运行了sudo gem uninstall rake和bundle install。它仍然无法正常工作。我卸载了pg 8.7并使用自制程序重新安装了pg 9.1.1并使用--freeze打开了一个新的RoR文件并且该文件rake db:迁移...但是我无法在模型中进行验证。验证抛出500内部服务器错误 - 字符串不能强制转换为整数。我提到这一切的原因是因为我刚刚将计算机迁移到Mac Lion和postgresql。改变计算机我们都是。似乎连接postgresql是这些错误中的常见线程。关于在哪里放pg文件以及如何最好地配置有很多不同的意见...我在5432 btw,保存,查询,只是不验证