Ruby падает на окнах при использовании thin+ssl
Я использую ruby в Windows(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
Идентификатор отчета: 47c368b9-ebaa-11e3-8cd8-8c89a5d53bc0`
Я пробовал разные версии ruby и openssl. но не повезло. Я на платформе 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 имеет некоторые проблемы с thin ssl?
1 ответ
После долгих проверок и разного тестирования компиляции на окнах я узнал причину.
Главным виновником был даже самоцвет машины. Gem Eventmachine был создан с помощью макроса WITHOUT_SSL в MSVC Compiler. И тонкий внутри использует eventmachine, и это вызывало крах ruby.
Компиляция gem машины событий после изменения extconf.rb у меня работала.
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']