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']
Другие вопросы по тегам