我在windows上使用ruby(ruby 1.9.3p194(2012-04-20 revision 35410)[i386-mswin32_90])。在我的gemfile中,我有以下内容: -
gem 'rack', '1.4.5'
gem 'thin', '1.5.0'
问题是当我尝试使用ssl选项开始瘦身时指定: -
ruby bin/thin --ssl -a 127.0.0.1 -p 44466 start
我启动服务器,但是在访问https://localhost:44466
时。我崩溃ruby并在控制台上发出错误,弹出窗口说ruby解释器已停止工作。
"This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information."
Faulting application name: ruby.exe, version: 1.9.3.194, time stamp: 0x5154804d
Faulting module name: MSVCR90.dll, version: 9.0.30729.4940, time stamp: 0x4ca2ef57
Exception code: 0x40000015
Fault offset: 0x0005beae
Faulting process id: 0x11d4
Faulting application start time: 0x01cf7fb6cca849aa
Faulting application path: C:\Ruby19\bin\ruby.exe
Faulting module path:C:\Windows\WinSx\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4940_none_50916076bcb9a742\MSVCR90.dll
报告ID:47c368b9-ebaa-11e3-8cd8-8c89a5d53bc0`
我尝试了ruby和openssl的diff版本。但没有运气。我在Windows平台上使用microsoft visual studio8进行编译。如果我错过了一些步骤,请告诉我。如何删除/避免这个' msvcr90.dll'错误。
platform :- windows7
Ruby :- ruby1.9.3p194 / ruby1.9.3p545
Openssl :- openssl 1.0.0d/openssl 1.0.0e
请告知我是否遗漏了任何内容,如果ruby1.9.3 mswin有一些关于瘦ssl的问题?
答案 0 :(得分:1)
经过长时间的跟进并在Windows上不时尝试编译,我才知道原因。
主要罪魁祸首是偶然的宝石。 eventmachine gem是在MSVC Compiler上使用WITHOUT_SSL宏构建的。瘦内部使用eventmachine,这导致ruby崩溃。
在changin extconf.rb为我工作后编译事件机器gem。
diff --git a/extconf.rb b/extconf.rb.new
index 448802a..27a5b8b 100644
--- a/extconf.rb
+++ b/extconf.rb.new
@@ -25,7 +25,7 @@ end
def manual_ssl_config
ssl_libs_heads_args = {
:unix => [%w[ssl crypto], %w[openssl/ssl.h openssl/err.h]],
- :mswin => [%w[ssleay32 eay32], %w[openssl/ssl.h openssl/err.h]],
+ :mswin => [%w[ssleay32 libeay32], %w[openssl/ssl.h openssl/err.h]],
}
dc_flags = ['ssl']