Unbehandelte Ausnahme in der Anwendung

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von joachim.

    Unbehandelte Ausnahme in der Anwendung

    Guten Tag,
    in meinem Programm matheaufgaben-loesen.de sollen regelmäßig Bilder vom Server der Telekom zu den einzelnen Aufgaben geladen werden. Das hat bis jetzt einwandfrei funktioniert.
    Im Moment sieht es so aus, dass der Link aus dem Code heraus funktioniert, das Bild wird geladen.
    Beispiellink:
    Bild1.Load("https://www.matheaufgaben-loesen.de/Kurven/Aufgabe1.jpg")
    Zur Laufzeit kommt die im Betreff angeführte Meldung mit dem Zusatz: Es konnte kein geschützter SSl/TSL Kanal erstellt werden, das Bild wird nicht geladen.
    Hat jemand eine Idee, was da passiert und wie man das korrigieren kann?
    Danke im Voraus.
    Freundliche Grüße
    Joachim

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Mir scheint, als könnte die Frameworkversion, die du verwendest, mit dem modernen Verschlüsselungsalgorithmus der HTTPS-Verbindung nichts anfangen. Oder dein Betriebssystem ist zu alt. Welches OS und welches Framework verwendest du?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Ich habe es so verstanden. :!:
    Das du ein Bild vom Server in deinem Programm haben möchtest.
    Mit der PictureBox hat es nicht geklappt.
    Aber mit einem WebBrowser Steuerelement.
    Ich hoffe ich könnte dir weiter helfen.

    Code:

    VB.NET-Quellcode

    1. Me.WebBrowser1.ScrollBarsEnabled = False
    2. Me.WebBrowser1.Navigate("https://www.matheaufgaben-loesen.de/Kurven/Aufgabe1.jpg")
    Visual Basic.NET 8o
    MS-SQL
    8o
    Die meisten Server verlangen heute häufig das Transferprotokoll TLS1.2
    Jetzt kommt es darauf an, wie du die Daten lädst.
    Der WebBrowser basiert auf einem relativ alten InternetExplorer, der das noch nicht unterstützt.
    Man kann es aber eventuell forcieren durch ​ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

    Du kannst aber auch versuchen, das WebView-Control zu verwenden.

    Oder deine Anwendung in ​HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION einzutragen, dann kannst du den Emulationsmodus aud IE11 oder Edge umstellen.

    Veröffentliche mal den Code, wie du herunterlädst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Guten Tag,
    habe Visual Studio 19 installiert, der Fehler bleibt, vor allem die Bemerkung, dass ein SSL/TSL Kanal nicht erstellt werden kann.
    Die Bilder sollten schon in der picturebox angezeigt werden.
    Die Bilder sollen beispielhaft durch
    Bild1.Load("https://www.matheaufgaben-loesen.de7Kurven/Aufgabe1.jpg")
    geladen werden.
    An Petaod:
    Wo sollen die Eintragungen vorgenommen werden? Im Code?

    petaod schrieb:

    Veröffentliche mal den Code, wie du herunterlädst.

    @joachim willst du das denn nicht bitte Nachholen oder ist Bild1.Load("https://www.matheaufgaben-loesen.de7Kurven/Aufgabe1.jpg") alles was du bisher versucht hast? Hast du denn die anderen Tipps bereits probiert? Wenn ja mit welchem Code. Bite hier posten.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    joachim schrieb:

    Wo sollen die Eintragungen vorgenommen werden? Im Code?
    Welche?
    Die erste?
    Bevor du den ersten Internet-Connect machst, z.B. beim Starten des Programms.

    Notfalls lädst du das Bild mit einem WebClient runter und lädst es vom lokalen Verzeichnis.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ja, das war bis jetzt alles, was ich versucht habe. Damit hat es auch funktioniert.
    Jetzt probiere ich den ersten Vorschlag von petaod.
    Lieber Petaod, schaffe es nicht, Deine Idee einzubinden. Bitte Dich um Unterstützung, welche Schritte ich wo unternehmen muss. Scheitere schon an der Deklaration. Habe diese Angaben noch nie eingesetzt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „joachim“ ()

    @joachim
    Ich habe das Problem für dich nun lösen können. ^^
    Mit einer älteren .NET Framework geht es nicht.
    Du benötigst mindestens .Net 4.5.
    Dann kannst du das Bild ganz normale Anzeigen in einer PictureBox.
    Oder du lädst das Bild herunter und zeigst es dann an.
    Wichtig ist das SecurityProtocolType.Tls12, sonst kommt eine Fehlermeldung!
    Freue mich, falls ich dir weiter helfen könnte.

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Net
    3. Public Class Form1
    4. Dim strLink As String = "https://www.matheaufgaben-loesen.de/Kurven/Aufgabe1.jpg"
    5. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    6. ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
    7. End Sub
    8. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    9. Dim WebClient1 As New System.Net.WebClient()
    10. Dim strFullPfad As String = System.IO.Path.GetTempPath & "temp.jpg"
    11. WebClient1.DownloadFile(strLink, strFullPfad)
    12. ' Bild anzeigen
    13. Me.PictureBox1.ImageLocation = strFullPfad
    14. End Sub
    15. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    16. Me.PictureBox2.ImageLocation = strLink
    17. End Sub
    18. End Class
    Visual Basic.NET 8o
    MS-SQL
    8o
    @Cheffboss Wenn ich @joachim richtig verstanden habe, verwendet er Version 4.6, somit sollte es wohl eigentlich gehen.

    Bei mir geht es übrigens mit dem simplen Load-Befehl und der PictureBox problemlos, ohne Fehlermeldung. Ich habe es aber im Framework 4.7.2 getestet.

    @joachim Vermutlich hast du den Import Imports System.Net vergessen.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    @joachim
    Stelle dir im Projekt die neuste Framework Version ein.
    Dann sollte es klappen.
    Zum Beispiel mit dem .NET Framework 2.00 kommt eine Fehlermeldung.
    Aber mit der neusten Version hat es bei mir geklappt!
    Visual Basic.NET 8o
    MS-SQL
    8o
    Habe jetzt Framework 4.8 geladen. Bekomme jetzt nach dem Starten eine Meldung aus dem Settings.Designer
    der Ver weis auf einen nicht freigegebenen Member erfordert einen Objektverweis.
    Die Zeile 34 ist der Verursacher:
    <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

    Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)

    If My.Application.SaveMySettingsOnExit Then

    My.Settings.Save() Zeile 34

    End If

    End Sub
    Habt ihr eine Idee? Schön wärs.
    @joachim NDas sieht aus wie Designer-Code.
    Da hat sich das Studio verhaspelt.
    Verlass das Studio, lösch alle obj- und bin-Ordner.
    Westell das Projekt neu.
    Wenn das nicht hilft:
    Mach ne Sicherungskopie und lösch dann diese Datei. Du musst ein wenig rumspielen, das ist etwas blöd.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was rodfromgermany vorschlägt, traue ich mir nicht zu. Tritt im übrigen bei VB 2015 und VB 2019 auf.
    Ist jetzt eine Schwierigkeit mehr nach der Umstellung auf Framework 4.8.
    Noch etwas zu dem ursprünglichen Problem:
    Dort werde ich aufgefordert die Status und die Response Eigenschaft zu überprüfen.
    Auch dazu habe ich nur rudimentäre Kenntnisse.
    Vielleicht jemand von euch näher dran.
    Schon mal danke für eure Mühe bis jetzt.