![]() |
DataSnap-Client lässt sich nicht erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Moin,
beim Versuch einen DataSnap-Client neu zu erstellen, gibt es am Ende des Experten einen Fehler und es bricht bei/vor Erstellung der Units ab. Delphi 10.4.1 (im XE keine Probleme) TestServer.exe * compilieren + starten (ohne Debugger) ClientTCP.exe * Datei > Neu > DataStnap > DataSnap-Client-Modul * Lokaler Server * Eigenständiger DataSnap-Server * TCP/IP * Port 211, User/Pass= egal -> Remote-Fehler: Zugriffsverletzung bei Adresse 00A37818 in Modul 'TestServer.exe'. Lesen von Adresse 00000000 * der DSServer ist wie vom Experten generiert * nur zusätzlich mit Billig-Logging und den zwei Testfunktionen für TStream. Der Fehler kommt in der IDE / im Experten (nicht aus in der Server-EXE) Die Server-EXE erkennt schonmal die Verbindung (LOG: UserAuthenticate Protocol=tcp/ip Context= User=user:pass) XE: Quellcode und Compilate 104: nur die Quellcodes, da die EXEn das Limit brechen (Allein der Server wird von 3MB wird zu 31MB und selbst Release+komprimiert übertrifft es die 5MB des Forum-Anhangs) --- Damals im XE, bei den ersten Generationen des DataSnap hatten wir/ich so Einiges am automatisch generierten Code angepasst. * bei Übertragung von TPgDataSet, während der Übertragung von TEXT in VARCHAR geändert, weil es mit TEXT nicht ging * bei Übertragung von Streams die übertragenen Streams in einen TMemoryStream umkopiert, weil Komponenten mit dem Stream.Size=-1 (wenn über 32 KB) nicht zurecht kamen * ... * ich hoffe das ganze Zeugs für TDataSet-Übertragung ist wieder raus (hatte es entfernt, als wir nach massiven langjährigen Problemen auf Materialized-Views in der Datenbank als PreCache umgestiegen sind) Bei Umstellung von XE zu 10.2 10.3 10.4 wollte ich mir nun den Server und Client neu erstellen lassen und dann schauen/vergleichen was nun zu tun wäre. * die Übertragungsverschlüsselung hatte ich auskommentiert (fand auf die Schnelle irgendwelche Klassen/Units nicht, aber egal, da bisher eh nicht aktiv :oops:) * und ansonsten ließ sich der alte Code erstmal problemlos kompilieren (nur paar USES anpassen) * aber im Betrieb raucht dann der DataSnap-Client beim Connect:=True ab * * Exception weil Interface (GUID irgendwas) nicht registriert sei (war irgendwas aus der IPPeerAPI) |
AW: DataSnap-Client lässt sich nicht erstellen
Du musst deine Frage noch stellen! :warn:
|
AW: DataSnap-Client lässt sich nicht erstellen
Weiß jemand warum es nicht geht? :angle2:
|
AW: DataSnap-Client lässt sich nicht erstellen
Problem gelöst
OK, es war doch ein Fehler im Server und nicht im Experten. :oops: Es waren 2-3 Fehler in Logging und Fehlerbehandlung. * auf EventObject.ServerClass im Queue zuzugreifen, wenn es dieses DatenObjekt nicht mehr gibt * die Exception im Queue wir in den aufrufenden Thread durchgereicht, aber dort nicht ausgegeben * und somit wurde der Fehler nicht angezeigt * dann war bei den DataSnap-Admin-Methoden ala DSAdmin.GetServerMethodParameters die ServerClass = nil * und da es selten Spaß macht die IDE mehrfach zu starten, seit es Recovery gibt und die IDe extrem langsam geworden ist (in den letzten 15 Jahren immer mehr) * hatte ich den Serverprozess ohne Debugger gestartet Zitat:
Delphi-Quellcode:
procedure TServerContainer1.DSAuthenticationManager1UserAuthorize(
Sender: TObject; EventObject: TDSAuthorizeEventObject; var valid: Boolean); var Log: string; begin if Assigned(EventObject.ServerClass) then Log := Format('UserAuthorize User=%s ServerClass=%s MethodAlias=%s', [EventObject.UserName, EventObject.ServerClass.ClassName, EventObject.MethodAlias]) else Log := Format('UserAuthorize User=%s ServerClass=nil MethodAlias=%s', [EventObject.UserName, EventObject.MethodAlias]); TThread.Queue(nil, procedure begin Form1.Memo1.Lines.Add(Log); end); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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