Belirli aralıklarla birkaç web sayfasını kazıyan kişisel kullanım için bir program üzerinde çalışıyorum. Bunlardan biri SSL kullanımını gerektiriyor ve ana URL'si aslında her seferinde bir avuç dolusu listeden farklı bir alana yönlendiren bir yük dengeleyicidir (ilgili olup olmadığından emin değil). Özellikle libcurl ve SSL için oldukça yeni, bu yüzden bariz bir şeyi kaçırıyor olabilirim ama sanmıyorum.Libcurl çalışmayı durdurdu, SSL bağlan hatası
programı bir süre (şimdiye kadar, hiçbir zaman daha uzun bir saat) için çalışıyor ancak SSL ilk defa bağlantı hatası alır sonra, aynı hatayı her zaman vermeye devam edecektir. Başarısız olmaya başlamadan önce, her zaman farklı bir zaman miktarı ve başarılı bir şekilde başarılı istekler gelir.
hata tampon her zaman aşağıdakileri içerir: schannel: next InitializeSecurityContext failed: SEC_E_ILLEGAL_MESSAGE (0x80090326) - This error usually occurs when a fatal SSL/TLS alert is received (e.g. handshake failed). More detail may be available in the Windows System event log.
eventvwr
yararlı bir şey yok. Bu hata kodunda yapılan aramalar, Windows Server'ın önceki sürümlerinde kendinden imzalı sertifikalarla ilgili sorunlara yol açar, ancak başka bir şey yoktur. Bağlandığım sunucuyu kontrol etmiyorum, ama sanırım bir Windows kutusu.
Burada fikirlerim tükendi, bu yüzden alakalı olabilecek ayrıntıları vereceğim. Diğerleri bir anlam veremeden ben Demirbaş kodu bir sürü yapıştırmak zorunda kalacak, böylece bütün kıvırmak çeşitli sınıflara uzak çağrıları abstracted ettik çünkü gerçekten herhangi gerçek kaynak kodunu yayınlayamıyor. Visual Studio hata ayıklayıcısını, gerçek çağrıların neye benzediğini doğruladım. herhangi diğerleri oluşturulmadan önce
Öyle gibi, ana iş parçacığı libcurl başlatmak: curl_global_init(CURL_GLOBAL_WIN32 | CURL_GLOBAL_SSL);
Sonra oluşturmak ve ikinci bir iş parçacığı gerçek bukle kolu başlatmak ve sadece bu iş parçacığı, şöyle:
m_handle = curl_easy_init();
curl_easy_setopt(m_handle, CURLOPT_WRITEDATA, this);
curl_easy_setopt(m_handle, CURLOPT_WRITEFUNCTION, write);
curl_easy_setopt(m_handle, CURLOPT_DEBUGDATA, this);
curl_easy_setopt(m_handle, CURLOPT_DEBUGFUNCTION, debug);
curl_easy_setopt(m_handle, CURLOPT_VERBOSE, 1);
curl_easy_setopt(m_handle, CURLOPT_ERRORBUFFER, &m_errormsg[0]);
curl_easy_setopt(m_handle, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt(m_handle, CURLOPT_COOKIEFILE, "");
Ben 0'a hem CURLOPT_SSL_VERIFYHOST
ve CURLOPT_SSL_VERIFYPEER
ayar ile denediği ama yardımcı olmadı.
Ben Visual Studio üzerinde nmake /f Makefile.vc mode=static VC=12 ENABLE_WINSSL=yes ENABLE_SSPI=yes MACHINE=x64 DEBUG=yes
ile curl-7.43.0.tar.gz
gelen libcurl inşa 2013.
burada oluyor ve bunu nasıl düzeltebilirim ne olacak?
soruyorum bu değil ama doğru test etmek için zaman yok şimdi. – Jehjoa