Hallo an alle,
nun stelle ich nach langer Zeit auch mal wieder eine Frage.
Gegeben ist folgende (für die Demo stark vereinfachte) Konstellation:
- Visual Studio 2022
- C# Klassenbibliothek mit DllExport via NuGet geladen
- Nativ exportierte DLL-Funktion, in der ein HttpClient eine Datei via SSL herunterlädt
- Delphi-Programm, das diese DLL lädt und die Funktion ausführt
Leider bekomme ich dabei einen SSL Fehler:
Zitat: |
---> (Interne Ausnahme #0) System.Net.Http.HttpRequestException: Fehler beim Senden der Anforderung. ---> System.Net.WebException: Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden.. |
Das Interessante daran ist nun, dass der exakt identische Quelltext in einer Windows Forms App (identisch mit .NET Framework 4.8 usw.) normal funktioniert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| MessageBox.Show("Vorher"); HttpClient _httpClientDefault = new HttpClient(); try { string DD_jwt = _httpClientDefault.GetStringAsync($"https://file-examples.com/storage/fe6869c4db62a7ab6a021f9/2017/02/file_example_XML_24kb.xml").Result; MessageBox.Show("Ergebnis: " + DD_jwt); } catch (Exception ex) { MessageBox.Show("Fehler: " + ex.ToString()); } MessageBox.Show("Nachher"); |
Die ausführbaren Binaries sind dabei, falls jemand z.B. das Delphiprojekt nicht selbst kompilieren kann / möchte. Es liegt fertig kompiliert unter:
Zitat: |
HttpClientError\DelphiHost\Win32\Release |
Dieses lädt die C#-DLL aus, die ebenfalls beiliegt:
Zitat: |
HttpClientError\HttpClientErrorLib\HttpClientErrorLib\bin\Debug\net48 |
Die funktionierende C# Anwendung liegt hier:
Zitat: |
HttpClientError\HttpClientErrorLib\HttpClientErrorExe\bin\Debug |
Es sind alle Projekte und Quelltexte mit dabei, es sollte sich also problemlos nachvollziehen lassen. Dafür reicht es den Knopf in der Delphi-Anwendung bzw. der C# Anwendung zu drücken.
Leider habe ich nicht die leiseste Idee was hier das Problem sein kann. Ihr vielleicht?
Danke schon einmal für eure Hilfe!
Viele Grüße
Sebastian