![]() |
SOAP - XE8 - Exception in iOS Clients
Hallo!
Ich habe eine iOS Anwendung die zur Steuerung einer SPS verwendet wird. Zur Kommunikation nutze ich SOAP / Webservice. Die Anwendung läuft auf 8 iPads und auch normallerweise ohne Probleme. Nun haben wir sie beim Kunden installiert - jetzt stellt sich heraus, dass zu einem nicht definierten Zeitpunkt eine Exception auftritt. Diese ich auch zu unterschiedlichen Zeitpunkten. Hab eine Netzwerkanalyse gemacht, um zu testen, ob es stabil ist -> keine Probleme. In meiner App habe ich auch alle Exceptions abgefangen -> glaubte ich zumindet. Jedoch trat diese Exception "irgendwo" anders aus. Also habe ich auch eine Application.OnException procedur implementiert, die den Fehler fängt. Der Fehler tritt auch am Wochenende auf, wo keine Benutzerinteraktion stattfindet. Das Programm liest aber alle 10 Sekunden den Status der Steuerung -> hier MUSS also der Fehler liegen. Wie gesagt, habe überall eine TRY EXCEPT eingenaut -> ich glaube das der Fehler beim Aufruf des Webservices auftriff:
Delphi-Quellcode:
Die Frage ist WARUM der Fehler auftritt -> nach ca. 3 Zyklen (3x10 Sekunden) ist die Exception wieder weg und die Steuerung funktioniert auch.
try
if (TcWebService <> nil) then TcWebService.ReadState(sNetID, iPort, adsState, deviceState); // <-- hier "MACHMAL" (1-3x pro Tag) Application.OnException except // wird NIE aufgerufen -> dennoch Exception in Application.OnException... Die Exception ist an irgendeiner Speicheradresse -> also nicht wirklich nachzuvollziehen. Es siehst so aus als würde der Request irgendwie ins "Nirvana" gehen. Komisch ist nur, das sich der gleiche Aufruf nach ca. 3 Zyklen wieder funktioniert. :? Hat jemand von euch ähnliche Erfahrungen gemacht? Grüße, Werner |
AW: SOAP - XE8 - Exception in iOS Clients
Ich weiß nicht, ob meine und deine Probleme zusammenhängen, aber ich habe auch ungewöhnliche Fehlermeldungen gehabt beim Abfragen eines Webservices unter XE8, nachdem ich von XE3 umgestellt habe - siehe diesen Thread:
![]() Der Fehler trat nur unter einer bestimmten Konfiguration auf - OS Win2003 R2 Server -, sonst lief es. In der SOAP-Implementierung in XE8 - vielleicht auch schon frühere Versionen - stecken einige Bugs, insbesondere was die Auswertung von Fehlercodes der WinInet-Funktionen angeht. Vielleicht hilft es, da einen Blick hineinzuwerfen, auch wenn du im iOS-Bereich unterwegs bist. Mir hat dabei das RemoteDebugging mit PAServer sehr geholfen, den Fehler einzugrenzen - ein Tip aus dem genannten Thread. |
AW: SOAP - XE8 - Exception in iOS Clients
Hallo Udo!
Deinen Thread hab ich gelesen - Unterschied ist es ja prinzipiell mit der Konfiguration funktioniert (Win 7 + XE 8.1), nur MANCHMAL Aussetzer hat. :? |
AW: SOAP - XE8 - Exception in iOS Clients
Sicher das das Netzwerk sich nicht "verschluckt"?
Mit welcher Delphi Version hat Du den WSDL Import gemacht? Mavarik |
AW: SOAP - XE8 - Exception in iOS Clients
Du sagst uns nicht, was für eine Exception denn geworfen wird.
Und es ist immer ratsam, alle Exceptions zu fangen, damit man die bloss nicht sieht, denn Exceptions sind ganz böse und sollten daher immer so
Delphi-Quellcode:
auf Teufel komm raus vermieden/unterdrückt werden.
try
// hier was machen except end; Nicht auszudenken, wenn man plötzlich eine aussagekräftige Exception-Meldung auf dem Bildschirm hat ... :wall: |
AW: SOAP - XE8 - Exception in iOS Clients
Gibt es denn unter iOS keinen Stacktrace den man sich im Exception-Fall loggen kann?
|
AW: SOAP - XE8 - Exception in iOS Clients
@Maverick: ja, ganz sicher - Netzwerk läuft extrem stabil (medizinische Einrichtung), WSDL Import Delphi XE8 Enterprise
@Sir Rufo: hatte ja vorher die Excelption Medlung am Screen ->
Code:
.
"Fehler - Zugriffsverletzung bei Adresse 00B64D42 beim Zugriff auf Adresse 00000000"
Das ist alles was ich hab. Darum habe ich ja die try exception Blöcke eingebaut, um den Fehler zu lokalisieren. Bin nicht jedem Tag beim Kunden darum wollte ich jetzt ein paar Logging Funktion einbauen bevor ich die neue iOS Version einspiele. Da der Fehler in genau einer Codezeile auftreten kann (siehe erstes Posting) wollte ich im Forum nachfragen, ob jemand schon ähnliche Probleme mit Webservices hatte. Das System steuert das Licht in einer medizinischen Einrichtung - wenn immer die "schönen Popup-Fenster" auftauchen, sitzt der Patient im Dunkeln, da die Meldungen ja alle 10 Sekunden kommen (für einen gewissen Zeitraum).. :roll: Grüße, Werner |
AW: SOAP - XE8 - Exception in iOS Clients
Um den Fehler bei den Langzeitests einzugrenzen, hab ich jetzt auch die Application Events mitgeloggt.
Dabei hat sich herausgestellt, das ich den "Low memory" event bekomme. Also im Timer ruf ich alle 10 Sekunden das Webservice auf. Muss ich da etwas freigeben oder hab ich sonst etwas vergessen?? Oder gibt iOS nach ein paar Stunden den App Speicher automatisch frei (Optimierung)?? Bin gerade etwas ratlos... :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz