Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   RAD Server Console (https://www.delphipraxis.net/213013-rad-server-console.html)

dw40u 8. Mai 2023 10:35

Datenbank: RAD Server • Version: 11.3 • Zugriff über: Console

RAD Server Console
 
Hallo Liebe Community,
ich habe folgendes Problem:

Wenn ich die EMSDevConsole öffne, öffnet sich der Browser und die Seite bleibt bei Loading... hängen.

In der Chrome Console wird folgender Fehler angezeigt:

Uncaught SyntaxError: Unexpected token '<', "<HTML><BOD"... is not valid JSON
at JSON.parse (<anonymous>)
at new Manifest ((index):76:372)
at Object.setManifest ((index):82:385)
at (index):82:249
at XMLHttpRequest.readyStateChange ((index):51:437)

Das Problem ist wohl, das folgende Datei nicht geladen wird:

http://localhost:8081/generatedFiles...=1683534868636

Habt ihr eine Idee?

Ich habe es mit Delphi 11 und 11.3 sowie 11.3 mit Patch 1 probiert.

System ist Windows 11 arm

haentschman 8. Mai 2023 11:22

AW: RAD Server Console
 
Moin...8-)

https://www.youtube.com/watch?v=qkR5gwX33Z8
"Pferdefuß" ab ~ 42:15 (Matthias Worte :zwinker:)

Uwe Raabe 8. Mai 2023 11:23

AW: RAD Server Console
 
Wenn das Windows auf German eingestellt ist, musst du noch die webresources aus dem "c:\Program Files (x86)\Embarcadero\Studio\22.0\ObjRepos\EN\EMS" in das entsprechende DE-Verzeichnis kopieren.

Übrigens hilft es nur wenig, wenn du hier einen Link auf localhost postest.
Zitat:

Zitat von dw40u (Beitrag 1522161)


dw40u 8. Mai 2023 21:46

AW: RAD Server Console
 
Vielen Dank!

Das kopieren des EMS Ordners nach DE hat die Lösung gebracht..

c:\Program Files (x86)\Embarcadero\Studio\22.0\ObjRepos\EN\EMS > c:\Program Files (x86)\Embarcadero\Studio\22.0\ObjRepos\DE\EMS

dw40u 8. Mai 2023 23:08

AW: RAD Server Console
 
Ich habe noch mal eine Frage:

Ist es möglich dinge beim EMS Service in einer Art Session zu speichern.

Uwe Raabe 9. Mai 2023 00:04

AW: RAD Server Console
 
Erklär mal genauer was du erreichen willst.

dw40u 9. Mai 2023 12:37

AW: RAD Server Console
 
Ich möchte gerne nach dem Login am besten den Inhalt im Query behalten für die nächste Anfrage oder halt die Bnutzerrechte in einer Variable hinterlegen. Es gibt ja im DataSnap so ne Möglichkeit.

Ich möchte gerne eine vorhandene Anwendung, die zur Zeit mit UniGUI umgesetzt ist in ein BackEnd zu überführen.

Die Benutzeranmeldung habe ich daher in meiner Datenbank. Ich würde dann eine Funktion schreiben um den Benutzer in meine DB zu Authentifizieren und dann ggf. im RAD Server anlegen und anmelden. Im Anschluss erstellt der RAD Server ja ne Session und gibt den Token raus.

Uwe Raabe 9. Mai 2023 13:11

AW: RAD Server Console
 
Du kannst und solltest nicht davon ausgehen, dass die Instanz der Endpoint-Klasse immer dieselbe ist. Wenn du einen Status zwischen zwei Aufrufen behalten willst, muss der Server diesen dem Client geben, damit der ihn beim nächsten Aufruf wieder an den Server schicken kann. Die Enspoint-Instanz muss dann anhand dieser Information den Status wieder herstellen. Das kann mit einer ID auf einen Datensatz geschehen, in dem die nötigen Informationen drinstehen. Eine offene Query gehört definitiv nicht dazu.

Du musst dir das so vorstellen, dass der RAD-Server zwischen zwei Aufrufen neu gestartet werden kann, ohne dass der Client davon etwas mitbekommt.

himitsu 9. Mai 2023 14:55

AW: RAD Server Console
 
Jupp, der RAD-Server hat zwar noch so Einiges extra drin,
aber DataSnap per se ist state-less ... wenn man es über REST anspricht, dann also RESTful.



Falls der RAD-Server auch eine Session-Verwaltung beinhaltet,
also automatisch die SessionID, bzw. einen Key, z.B. via Cookie oder Parameter in jedem Aufruf durchreicht,
dann wäre das was Anderes.

Oder wenn du selber sowas machst.

Uwe Raabe 9. Mai 2023 16:27

AW: RAD Server Console
 
Hier noch der entsprechende Wikipedia-Eintrag: https://de.wikipedia.org/wiki/Repres...tandslosigkeit

Zitat:

Zustandslosigkeit
Jede REST-Nachricht enthält alle Informationen, die für den Server bzw. Client notwendig sind, um die Nachricht zu verstehen. Weder der Server noch die Anwendung soll Zustandsinformationen zwischen zwei Nachrichten speichern. Man spricht daher von einem zustandslosen (englisch: stateless) Protokoll. Jede Anfrage eines Clients an den Server ist insofern in sich geschlossen, als dass sie sämtliche Informationen über den Anwendungszustand beinhaltet, die vom Server für die Verarbeitung der Anfrage benötigt werden.

Zustandslosigkeit in der hier beschriebenen Form begünstigt die Skalierbarkeit eines Webservices. Beispielsweise können eingehende Anfragen im Zuge der Lastverteilung unkompliziert auf beliebige Maschinen verteilt werden: Da jede Anfrage in sich geschlossen ist und Anwendungsinformationen somit ausschließlich auf der Seite des Clients vorgehalten werden, ist auf der Seite des Servers keine Sitzungsverwaltung erforderlich. In der Praxis nutzen deswegen viele HTTP-basierte Anwendungen Cookies und andere Techniken, um Zustandsinformationen auf der Client-Seite zu behalten. Weiterhin begünstigt wird die Ausfallsicherheit, weil die Zustandslosigkeit fordert, dass transaktionale Datenübertragung in einem einzigen Seitenaufruf erfolgt. Die Zustandslosigkeit bringt dabei aber den Nachteil mit, dass sich die Netzwerkperformance verschlechtert. Da bei jeder Abfrage alle Informationen zum Verstehen mitgeschickt werden müssen, sind aufwendigere Abfragen nötig, als wenn sich der Server die Interaktionen merken würde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 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 by Thomas Breitkreuz