2009-06-04 40 views
3

Je sais que cette question a été posée un certain nombre de fois. Je semble avoir un peu un problème différent. Dans ma situation, après que l'exception ait été lancée initialement, cela fonctionne bien (et non, je n'ai pas désactivé les exceptions). Donc ce que je l'ai fait est à l'exception que je simplement republier:Indy "Impossible de charger la bibliothèque SSL" avec Delphi 2007/Apache

IdHTTP1.Post (.......

J'ai mis le libeay32.dll et ssleay32.dll aussi bien dans le répertoire bin Apache et le répertoire où mon dll ISAPI réside.

Quelqu'un a des suggestions?

Répondre

2

Pour Indy, vous avez besoin d'une compilation spéciale de bibliothèques OpenSSL. Les bibliothèques OpenSSL par défaut ne sont pas compatibles avec Indy.

See also. Peut-être avez-vous besoin d'essayer différentes versions, jusqu'à ce que vous en trouviez une appropriée.

+2

Cela ne s'applique qu'aux anciennes versions d'Indy. La version moderne utilise les DLL OpenSSL par défaut telles quelles. –

3

cette erreur signifie que la propriété TIdSSLIOHandlerSocketOpenSSL.PassThrough est réglé sur False (ce qui se produirait lors de la publication à une URL HTTPS) avant TIdSSLIOHandlerSocketOpenSSL.Init() a été appelé à initialiser le contexte SSL en premier

Cela ressemble à un bug. La prochaine fois que vous obtenez l'erreur, pouvez-vous récupérer la trace de la pile?

+1

La voici. Désolé, je n'arrive pas à insérer les retours chariot. : 7761b08e kernel32.RaiseException + 0x58 : 0113bb57 Call_HookedRaise + B3 $ : 011f7bed TIdSSLContext.Create + 61 $ : 011f7481 TIdSSLIOHandlerSocketOpenSSL.Init + $ 1D : 011f7270 TIdSSLIOHandlerSocketOpenSSL.ConnectClient + 20 $: 012076e2 TIdCustomHTTP .CheckAndConnect + 7E $ : 01207b2a TIdCustomHTTP.ConnectToHost + $ 3BE : 01209426 TIdCustomHTTP.DoRequest + 152 $ : 012064d7 TIdCustomHTTP.Post + $ 9F : 01206899 TIdCustomHTTP.Post + $ D1 : 012069ec TIdCustomHTTP.Post + $ 6C –

+1

MyMain.SubmitIt Étant donné que la trace de pile, il y a deux possibilités: 1) les DLL OpenSSL ne peuvent pas être chargés du tout (vous pouvez utiliser WhichFailedToLoad() pour le vérifier); 2) OpenSSL est chargé mais la fonction mi_SSLeay_add_ssl_algorithms() échoue. –

Questions connexes