Vielen Dank für die Antwort.
Und verwende asynchrone Programmierung bei sowas. Das ist essentiell.
Leider müssen wir aus verschiedenen Gründen weiterhin WebRequest. Außerdem soll die Funktion nicht asynchron sein, da wir auf die Antwort warten müssen.
Es wundert mich eben, warum der Befehl einmal ausgeführt wird und ein anderes mal nicht. Obwohl die Einstellung Global gesetzt ist und die Klasse weiter genutzt wird.
Hallo,
wir haben eine Klasse mit der wir mehrere WebRequest versenden.
Lieder kommt es immer wieder dazu, dass wir einen Fehler bekommen:
System.Net.WebException: Die zugrunde liegende Verbindung wurde geschlossen: Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden.
SSL wird Global in der Klasse gesetzt. Kann es sein, das diese Globale Einstellung nach eienr gewissen Zeit verloren geht?
Es funktioniert auch eine Zeit lang, aber irgendwann kommt der Fehler, ohne ein wirkliches Muster zu erkennen
Wir verbinden uns intern mit einer Firewall, daher gibt es kein Zertifikat für die SSL verbindung, was aber doch kein Problem sein sollte?
public class WebHelper {
private string host = string.Empty;
private int port = 4444;
private string username = string.Empty;
private string password = string.Empty;
public WebHelper(string host, int port, string username, string password) {
this.host = host;
this.port = port;
this.username = username;
this.password = password;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072;
}
private string sendAPIRequest(string requestBlock) {
string xmlResponse = string.Empty;
var request = (HttpWebRequest)WebRequest.Create("...")
request.Method = "GET";
request.ContentType = "application/xml; charset=UTF-8";
request.Timeout = 40000;
string xmlContent = string.Empty;
using (HttpWebResponse rsp = (HttpWebResponse)request.GetResponse()) {
...
};
}
Vielen Dank schonmal