Merker/Ausgänge Moeller Easy auslesen und schreiben (easy_com.dll)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

  • Grüsst euch... ;-)


    Einige Zeit ist wieder vergangen und zu einem weiteren Knackpunkt habe ich keine Lösung gefunden.


    Bei meinem Easy-Steuerelais sind drei Zeitrelais (abfallverzögert) programmiert. (T01EN, T02EN, T03EN)


    Die Ist-Werte der jeweiligen Timer würde ich natürlich gerne in meinem Visual Basic-Programm darstellen, damit ich weiss, wann der Timer sich dem Ende nähert.


    Laut der easy_com.dll - Doku (Seite 32) dachte ich an folgenden Code:


    [PHP] Private Sub Timer_Timer_auslesen_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_Timer_auslesen.Tick
    Dim bRawByteDusche(80) As Byte
    easyCOM.MC_Read_Object_Value(MyComHandle, 0, 10, 94, 8, bRawByteDusche(0))
    TextBox5.Text = bRawByteDusche(0).ToString
    End Sub[/PHP]Leider zählt der Wert in der TextBox5 von 1 hoch, obwohl er eigentlich die verbleibende Zeit bis zum Ausschalten anzeigen sollte.


    Im nachfolgenden Bild sind die Einstellungen im der Programmiersoftware des Steurrelais (EasySoft) zu sehen.


    [Blockierte Grafik: http://img4.fotos-hochladen.ne…ameterventiwi5ku4ngra.jpg]
    Merker-Doppelwort 94.


    Welche Anpassungen sind notwendig, damit es mir die Timerzeit in Minuten und Sekunden ausgibt?


    Besten Dank.


    LG ADB

  • Nach einer "kurzen" Pause kam mir die Idee, dass ich durch eine einfache Subtraktion den gewünschten Timer realisieren kann. Dazu habe ich die ausgelesenen Sekunden vom Maximalwert (in meinem Beispiel die 15 Minuten) abgezogen.


    Der Code sieht aktuell folgendermassen aus:

    Code
    Dim bRawByteDusche(50) As Byte
            easyCOM.MC_Read_Object_Value(MyComHandle, 0, 10, 91, 8, CByte(bRawByteDusche(0)))               ' Merker 94 (Timerwert Venti Dusche) wird ausgelesen und in bRawByteDusche geschrieben
            Dim VentiDuscheValue As TimeSpan = New TimeSpan(0, 0, CInt(bRawByteDusche(0)))                  ' Ausgelesener Wert wird in "VentiDuscheValue" geschrieben
            Dim VentiDuscheTimerValue As New TimeSpan(0, 15, 0)                                             ' Konstante. In diesem Fall die eingestellten 15min
            Dim TimeVentiDuscheCalc As TimeSpan = VentiDuscheTimerValue.Subtract(VentiDuscheValue)          ' Berechneter Wert. Der ausgelesene Wert wird von der Konstante (15min) subtrahiert.

    Soweit klappt alles einwandfrei. Erst, wenn der ausgelesene Wert von bRawByteDusche(0) über die 255 Zeichen steigt, fängt es wieder bei Null an. Aus diesem Grund zählt mein Timer nur von 00:15:00 hinunter bis 00:10:45 (4 x 60 Sekunden + 15 Sekunden = 255). Dieser Wert wird jedoch nie unterschritten und beginnt wieder von 00:15:00.
    So kann ich diesen Timer natürlich nicht gebrauchen. Gibt es eine Möglichkeit, wie ich mehr als 255 Zeichen übergeben kann? Leider habe ich über die Googlesuche noch keine passende Lösung gefunden... :(


    Besten Dank.


    Freundlich grüsst
    ADB

  • Da du ja einen Doppelwort-Merker hast, müssten eigentlich 4 Bytes in bRawByteDusche eingelesen werden, also bRawByteDusche(0) bis bRawByteDusche(3); allerdings dürften für diese Zwecke die ersten beiden Bytes reichen. Theoretisch müsste dann die dritte Zeile so funktionieren:

    Code
    Dim VentiDuscheValue As TimeSpan = New TimeSpan(0, 0, CInt(bRawByteDusche(0))+256*CInt(bRawByteDusche(1)))
  • Hallo cx01


    So einfach wäre es gewesen. Habe es versuchsweise mit eine Select-Case versucht, doch deine Variante ist natürlich um einiges eleganter! :-)


    Besten Dank für deine Hilfe!


    Wird voraussichtlich nicht mein letzter Hilferuf sein... ;)


    Freundlich grüsst
    ADB

  • Hallo Forumsmitglieder.


    Mein Bedienpanel erweitert sich stetig, doch die Sache mit dem Konverterproblem gefällt mir leider noch nicht. Es geschieht sporadisch, dass der Konvert EX-6030 bei einem Unterbruch beispielsweise der Wlan oder lan-Verbindung nicht mehr mit meinem Programm kommuniziert. D.h. ich muss entweder den Konverter vom Stromnetz trennen oder über das Webinterface eine Einstellung ändern und mit dem Betätigen des "Update"-Buttons den Konverter zu einem Neustart zwingen.


    Kennt jemand eine Möglichkeit, den Konverter über Befehle (beispielsweise über das Webinterface) neu starten lässt? Somit könnte ich meinem Programm (vb.net) beibringen, dass es mit diesen Befehlen einen Neustart des Konverters erziehlen kann, falls es keine Verbindung herstellen kann.


    [Blockierte Grafik: http://s7.directupload.net/images/130504/i2xc5trc.jpg]


    Mit Wireshark habe das Filtern der ausgehenden Befehle gefiltert. Evtl. kann mir damit jemand helfen...

  • Wenn ich dies richtig interpretiere, wird zuerst per "POST" die verschiedenen ausgewählten Dropdown-Einträge zum Konverter übertragen und anschliessend per GET die Update.htm angefordert oder aufgerufen.



    Mit dem "Live HTTP headers" (Firefox-Addon) habe ich folgende Einträge ausgelesen:
    ----------------------------------------
    http://192.168.xx.xx/Update.htm


    POST /Update.htm HTTP/1.1
    Host: 192.168.xx.xx
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: http://192.168.xx.xx/Setup.htm
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 328
    ctIP=192.168.xx.xx&ctMask=255.255.xxx.x&ctGateway=192.168.xx.xx&ctNetSpeed=0&ctDHCP=0&ctWebPort=0&ctSioPort=xxxx&ctSioMode=3&ctDioPort=101&ctDioMode=3&ctHostIP=0.0.0.0&ctHostPort=0&ctAutoCon=1&ctInactive=0&ctSioBaud=6&ctSioParity=0&ctSioBits=3&ctSioStops=0&ctSioType=0&ctPktMode=1&ctDeviceID=1&ctReportID=0&ctPassword=&bSave=Update
    HTTP/0.9 200 OK
    ----------------------------------------------------------
    http://192.168.xx.xx/


    GET / HTTP/1.1
    Host: 192.168.xx.xx
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: http://192.168.xx.xx/Update.htm
    Connection: keep-alive


    HTTP/0.9 200 OK
    ----------------------------------------


    Wenn ich jedoch im Browser oder im CMD beispielsweise 192.168.xx.xx/Update.htm eingebe, wird kein Neustart veranlast.


    Auch mit dem Code von dieser Seite funktioniert es nicht:


    [PHP]
    Option Strict On


    Imports System.IO
    Imports System.Net
    Imports System.Text



    Public Class Form1
    Dim cookieCon As New CookieContainer
    Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://192.168.xx.xx/"), HttpWebRequest)


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    request.Method = "GET"
    request.CookieContainer = cookieCon
    request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0"
    request.ContentType = "application/x-www-form-urlencoded"
    request.Referer = "http://192.168.xx.xx/Update.htm"


    End Sub
    End Class
    [/PHP]Auf dem Konverter muss kein Benutzername eingegeben werden. Passwort ist aktuell keines gesetzt. Auf der Hauptsite muss also nur der "Login-Button" gedückt werden und man wird zur Einstellungssite weitergeleitet.


    Hat evtl. jetzt jemand ein Hinweis für mich?

  • Du sendest ja jetzt einen GET-Request. Vermutlich musst du request.Method auf POST setzen und ausserdem noch den Inhalt des Requests irgendwie einfügen:

    Code
    ctIP=192.168.xx.xx&ctMask=255.255.xxx.x&ctGateway=192.168.xx.xx&ctNetSpeed=0&ctD HCP=0&ctWebPort=0&ctSioPort=xxxx&ctSioMode=3&ctDioPort=101&ctDioMode=3&ctHostIP= 0.0.0.0&ctHostPort=0&ctAutoCon=1&ctInactive=0&ctSioBaud=6&ctSioParity=0&ctSioBit s=3&ctSioStops=0&ctSioType=0&ctPktMode=1&ctDeviceID=1&ctReportID=0&ctPassword=&b Save=Update


    Weiss nur nicht, wie man diesen Inhalt in den Request bekommt. Eventuell muss man request.GetRequestStream() und dann dort mit write() reinschreiben oder so.

  • Habe noch gesehen, dass eigentlich insgesamt vier Pakete gesendet werden:


    -------------------------------------------------
    http://192.168.xx.xx/


    GET / HTTP/1.1
    Host: 192.168.xx.xx
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Connection: keep-alive


    HTTP/0.9 200 OK
    ----------------------------------------------------------
    http://192.168.xx.xx/Setup.htm


    POST /Setup.htm HTTP/1.1
    Host: 192.168.xx.xx
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: http://192.168.xx.xx/
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 98
    ctElapse=00%3A09%3A12&ctVersion=Dec+26+2007+00%3A42&ctMAC=N51F4-3D8128A3&ctPassword=&ctLogin=Login
    HTTP/0.9 200 OK
    ----------------------------------------------------------
    http://192.168.xx.xx/Update.htm


    POST /Update.htm HTTP/1.1
    Host: 192.168.xx.xx
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: http://192.168.xx.xx/Setup.htm
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 328
    ctIP=192.168.xx.xx&ctMask=255.255.xxx.x&ctGateway=192.168.x.x&ctNetSpeed=0&ctDHCP=0&ctWebPort=0&ctSioPort=xxxx&ctSioMode=3&ctDioPort=101&ctDioMode=3&ctHostIP=0.0.0.0&ctHostPort=0&ctAutoCon=0&ctInactive=0&ctSioBaud=6&ctSioParity=0&ctSioBits=3&ctSioStops=0&ctSioType=0&ctPktMode=1&ctDeviceID=1&ctReportID=0&ctPassword=&bSave=Update
    HTTP/0.9 200 OK
    ----------------------------------------------------------
    http://192.168.xx.xx/


    GET / HTTP/1.1
    Host: 192.168.xx.xx
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: http://192.168.xx.xx/Update.htm
    Connection: keep-alive


    HTTP/0.9 200 OK
    ----------------------------------------------------------


    1. Ip-Adresse wird in das Adressfeld eingegeben - Login erscheint.
    2. Da kein Login-Passwort vorhanden -> Durch Klick auf "Login" erscheint Einstellungsseite
    3. Änderung muss gemacht werden, damit beim Betätigen von "Update" ein Neustart gemacht wird.
    4. Sobald der Neustart ausgeführt wurde, erscheint wieder das Login-Fenster.


    Ich habe versucht, die letzten drei mit einem eigenen Button zu realisieren:


    [PHP]
    Option Strict On


    Imports System.IO
    Imports System.Net
    Imports System.Text



    Public Class Form1
    Dim cookieCon As New CookieContainer
    Dim request1 As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://192.168.xx.xx/Setup.htm"), HttpWebRequest)
    Dim request2 As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://192.168.xx.xx/Update.htm"), HttpWebRequest)
    Dim request4 As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://192.168.xx.xx/Setup.htm"), HttpWebRequest)



    Dim post1 As String = "ctElapse=00%3A01%3A31&ctVersion=Dec+26+2007+00%3A42&ctMAC=N51F4-3D8128A3&ctPassword=&ctLogin=Login"
    Dim post2 As String = "ctIP=192.168.xx.xx&ctMask=255.255.xxx.x&ctGateway=192.168.x.x&ctNetSpeed=0&ctDHCP=0&ctWebPort=0&ctSioPort=xxxx&ctSioMode=3&ctDioPort=101&ctDioMode=3&ctHostIP=0.0.0.0&ctHostPort=0&ctAutoCon=0&ctInactive=0&ctSioBaud=6&ctSioParity=0&ctSioBits=3&ctSioStops=0&ctSioType=0&ctPktMode=1&ctDeviceID=1&ctReportID=0&ctPassword=&bSave=Update"



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    request1.Method = "POST"
    request1.CookieContainer = cookieCon
    request1.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0"
    request1.ContentType = "application/x-www-form-urlencoded"


    Dim byteArr() As Byte = Encoding.Default.GetBytes(post1)
    request1.ContentLength = byteArr.Length


    Dim dataStream As Stream = request1.GetRequestStream()
    dataStream.Write(byteArr, 0, byteArr.Length)
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    request2.Method = "POST"
    request2.CookieContainer = cookieCon
    request2.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0"
    request2.ContentType = "application/x-www-form-urlencoded"


    Dim byteArr() As Byte = Encoding.Default.GetBytes(post2)
    request2.ContentLength = byteArr.Length


    Dim dataStream As Stream = request2.GetRequestStream()
    dataStream.Write(byteArr, 0, byteArr.Length)
    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    request4.Method = "GET"
    request4.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0"
    request4.Referer = "http://192.168.xx.xx/Update.htm"
    End Sub
    End Class
    [/PHP]Leider wird nach wie vor kein Neustart ausgeführt.



    Und dieser Code habe ich eben noch hinzugefügt:


    [PHP]
    Dim byteArr() As Byte = Encoding.Default.GetBytes(post2)
    request2.ContentLength = byteArr.Length


    Dim dataStream As Stream = request2.GetRequestStream()
    dataStream.Write(byteArr, 0, byteArr.Length)
    [/PHP]Meintest du dieser Teil?


    Denkst du , dass alle vier Schritte notwendig sind, damit ein Neustart vollzogen wird??
    Vor allem wird bei den ersten beiden Buttons etwas übermittelt (gesnifft mit Wireshark) und mit dem dritten Button regte sich gar nichts...


    Evtl. ist es jedoch genau die Get-Methode, die dafür zuständig wäre...

  • Ich denke, dass nur Button2 notwendig ist, um einen Neustart auszulösen. Hast du mal in Wireshark verglichen, was Firefox sendet und was dein Programm sendet?


    EDIT: Eventuell musst du auch einfach dataStream.close() aufrufen, damit er weiss, wann die Anfrage fertig ist.

  • Also die wichtigsten Elemente sollten eigentlich übertragen werden.
    Für:
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\r\n
    Accept-Encoding: gzip, deflate\r\n
    Connection: keep-alive\r\n

    gibt es in VB.net keine Auswahlmöglichkeit. Ich nehme jedoch an, dass sie nicht relevant sind... oder was denkst du?


    Als ich die beiden ersten Buttons heute nochmals ausprobiert habe, hat der erste Neustart funktioniert. Beim zweiten Betätigen eines Buttons friert das Programm jedoch ein.
    Button 1 muss jedoch zuerst gedrückt werden. Ich nehme an, dass der Konverter sonst keine Befehle annimmt...


    Das dataStream.close() habe ich noch angefügt, das Programm friert trotzdem ein...


    Gibt es eine Möglichkeit, dem Fehler auf die Spur zu kommen, damit auch mehrere Neustarts möglich wären?

  • Ja ich denke, diese Accept-Header usw. sind unwichtig.


    Vermutlich friert das Programm ein, weil der HttpWebRequest geschlossen wurde, und du dann versuchst hineinzuschreiben. Am besten du packst das "Dim request2 As HttpWebRequest = ....." in die jeweilige Button-Methoden mit rein, sodass der Request bei jedem Knopfdruck neu erstellt wird.

  • Dies hatte ich bereits vor einigen Tagen versucht, leider vergebens. :(


    Mein Code sieht mittlerweilen so aus:


    [PHP]
    Public Class Form1
    Dim cookieCon1 As New CookieContainer
    Dim cookieCon2 As New CookieContainer


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim post1 As String = "ctElapse=00%3A01%3A31&ctVersion=Dec+26+2007+00%3A42&ctMAC=N51F4-3D8128A3&ctPassword=&ctLogin=Login"
    Dim request1 As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://192.168.xx.xx/Setup.htm"), HttpWebRequest)

    request1.Method = "POST"
    request1.CookieContainer = cookieCon1
    request1.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0"
    request1.ContentType = "application/x-www-form-urlencoded"
    request1.Referer = " http://192.168.xx.xx/"


    Dim byteArr1() As Byte = Encoding.Default.GetBytes(post1)
    request1.ContentLength = byteArr1.Length

    Dim dataStream1 As Stream = request1.GetRequestStream()
    dataStream1.Write(byteArr1, 0, byteArr1.Length)
    dataStream1.Close()



    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim post2 As String = "ctIP=192.168.xx.xx&ctMask=255.255.xxx.x&ctGateway=192.168.xx.xx&ctNetSpeed=0&ctDHCP=0&ctWebPort=0&ctSioPort=xxxx&ctSioMode=3&ctDioPort=101&ctDioMode=3&ctHostIP=0.0.0.0&ctHostPort=0&ctAutoCon=0&ctInactive=0&ctSioBaud=6&ctSioParity=0&ctSioBits=3&ctSioStops=0&ctSioType=0&ctPktMode=1&ctDeviceID=1&ctReportID=0&ctPassword=&bSave=Update"
    Dim request2 As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://192.168.xx.xx/Update.htm"), HttpWebRequest)

    request2.Method = "POST"
    request2.CookieContainer = cookieCon2
    request2.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0"
    request2.ContentType = "application/x-www-form-urlencoded"
    request2.Referer = "http://192.168.xx.xx/Setup.htm"
    request2.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"

    Dim byteArr2() As Byte = Encoding.Default.GetBytes(post2)
    request2.ContentLength = byteArr2.Length

    Dim dataStream2 As Stream = request2.GetRequestStream()
    dataStream2.Write(byteArr2, 0, byteArr2.Length)
    dataStream2.Close()
    End Sub
    End class

    [/PHP]Bin halt noch ein blutiger Anfänger - vielleicht siehst du an einem anderen Ort noch einen Fehler... ;)

  • Der Server hat eine Protokollverletzung ausgeführt.. Section=ResponseStatusLine


    Beim Abarbeiten des Codes erscheint leider diese Fehlermeldung. Bei Google habe ich noch keine Lösung dafür gefunden... :?:

  • Es scheint, man müsse die App.config Datei in Visual Studio ändern und folgendes einbauen:

    Code
    <system.net>
    <settings>
    <httpWebRequest useUnsafeHeaderParsing = "true"/>
    </settings>
    </system.net>


    Bei mir sieht die gesamte Datei dann so aus:


  • hm... es hat eine Weile gedauert, bis ich die config.app erstellen konnte. Sie war noch nicht erstellt...
    Jedoch sieht meine app.config etwas anders aus:


    [PHP]


    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxx" >
    <section name="WindowsApplication1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxx" requirePermission="false" />
    </sectionGroup>
    </configSections>
    <system.diagnostics>
    <sources>
    <!-- Dieser Abschnitt definiert die Protokollierungskonfiguration für My.Application.Log -->
    <source name="DefaultSource" switchName="DefaultSwitch">
    <listeners>
    <add name="FileLog"/>
    <!-- Auskommentierung des nachfolgenden Abschnitts aufheben, um in das Anwendungsereignisprotokoll zu schreiben -->
    <!--<add name="EventLog"/>-->
    </listeners>
    </source>
    </sources>
    <switches>
    <add name="DefaultSwitch" value="Information" />
    </switches>
    <sharedListeners>
    <add name="FileLog"
    type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
    initializeData="FileLogWriter"/>
    <!-- Auskommentierung des nachfolgenden Abschnitts aufheben und APPLICATION_NAME durch den Namen der Anwendung ersetzen, um in das Anwendungsereignisprotokoll zu schreiben -->
    <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
    </sharedListeners>
    </system.diagnostics>
    <applicationSettings>
    <WindowsApplication1.My.MySettings>
    <setting name="request1" serializeAs="String">
    <value>HttpWebRequest</value>
    </setting>
    <setting name="Setting" serializeAs="String">
    <value />
    </setting>
    </WindowsApplication1.My.MySettings>
    </applicationSettings>
    </configuration>


    [/PHP]Der Eintrag
    <httpWebRequest useUnsafeHeaderParsing="true" />
    existiert bei mir gar nicht...


    Das einfache Hinzufügen funktioniert leider auch nicht -> Fehlermeldung.

  • Ca. so sieht es aus:


    [PHP]
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxx" >
    <section name="WindowsApplication1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxx" requirePermission="false" />
    </sectionGroup>
    </configSections>
    <system.diagnostics>
    <sources>
    <!-- Dieser Abschnitt definiert die Protokollierungskonfiguration für My.Application.Log -->
    <source name="DefaultSource" switchName="DefaultSwitch">
    <listeners>
    <add name="FileLog"/>
    <!-- Auskommentierung des nachfolgenden Abschnitts aufheben, um in das Anwendungsereignisprotokoll zu schreiben -->
    <!--<add name="EventLog"/>-->
    </listeners>
    </source>
    </sources>
    <switches>
    <add name="DefaultSwitch" value="Information" />
    </switches>
    <sharedListeners>
    <add name="FileLog"
    type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxx, processorArchitecture=MSIL"
    initializeData="FileLogWriter"/>
    <!-- Auskommentierung des nachfolgenden Abschnitts aufheben und APPLICATION_NAME durch den Namen der Anwendung ersetzen, um in das Anwendungsereignisprotokoll zu schreiben -->
    <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
    </sharedListeners>
    </system.diagnostics>
    <applicationSettings>
    <WindowsApplication1.My.MySettings>
    <setting name="request1" serializeAs="String">
    <value>HttpWebRequest</value>
    </setting>
    <setting name="Setting" serializeAs="String">
    <value />
    </setting>
    </WindowsApplication1.My.MySettings>
    </applicationSettings>
    <system.net>
    <settings>
    <httpWebRequest useUnsafeHeaderParsing="true" />
    </settings>
    </system.net>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    </configuration>



    [/PHP]richtig?



    .

  • cx01, ich glaube, die Sache nimmt mir zu viel Zeit weg. :-)
    Ich werde es wohl in einem externen Programm aufstarten und nach dem Neustart automatisch wieder schliessen lassen. Somit sollte eigentlich gewährleistet sein, dass es auch beim zweiten und dritten Mal funktioniert.


    Vielleicht hat es so sogar mehr Vor- als Nachteile, denn beim Senden friiert das Programm einige Sekunden ein. Somit würde mein Hauptbedienpanel hoffentlich stets Bedienbar bleiben...


    Ich werde dies mal versuchen...


    Danke für deine Unterstützung!!