AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Win-CGI mit Delphi: Start eines anderen Prozesses
Thema durchsuchen
Ansicht
Themen-Optionen

Win-CGI mit Delphi: Start eines anderen Prozesses

Ein Thema von Lemmy · begonnen am 12. Mär 2019 · letzter Beitrag vom 14. Mär 2019
Antwort Antwort
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#1

Win-CGI mit Delphi: Start eines anderen Prozesses

  Alt 12. Mär 2019, 20:52
Hallo,

habe hier eine Windows-CGI (TWebModule), indem ich einen anderen Prozess starten muss und auf dessen Beendigung warten muss.

Problem ist, dass das ganze unter Windows 2003 mit IIS laufen soll. Wenn ich per CreateProcess eine prozess starte funzt das bei mir (IIS Express V8), beim Anwender kommt ein völlig sinnfreier Exitcode (3221225509) - und nein, ich verwende keinen Exitcode in der Anwendung

Gibt es unter dem IIS vom Windows 2003er Server noch was zu beachten?

Frage: Wenn ich anstelle einer Anwendung diese per DLL bereit stelle und diese in das CGI einbinde: Woher bekommt die DLL dann den Speicher? Ich befürchte, die bekommt den selben Speicherbereich wie die Anwendung? Oder einen separaten (d.h. eigene 2 GByte extra)?

Grüße
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#2

AW: Win-CGI mit Delphi: Start eines anderen Prozesses

  Alt 13. Mär 2019, 08:58
Dort https://www.experts-exchange.com/que...-c0000025.html schreibt jemand, dass es eine ausführliche Beschreibung des Fehlers an dieser Stelle http://www.microsoft.com/downloads/d...displaylang=en geben soll (SDKs).

Ursache ist (vermutlich)
Code:
#define STATUS_NONCONTINUABLE_EXCEPTION ((DWORD  )0xC0000025L)
Tippe mal darauf, dass beim Anwender irgendwas anders ist, als von Dir / dem CGI erwartet und von daher eine Exception auftritt, mit der nicht gerechnet wird und die deshalb das CGI "abrauchen" lässt.

Prinzipiell müsste dieser ExitCode darauf hinweisen, dass ein gestarteter Prozess mit einer Exception beendet wird. Dies könnte aus IIS-Sicht das CGI sein oder aus CGI-Sicht ein per CreateProcess gestarteter Prozess.

Funktioniert beim Anwender das CGI, wenn es nix weiter macht, als z. B. "Hallo Welt" auszugeben? Sprich: Funktionieren bei ihm CGIs überhaupt?

Im Zweifelsfalle im CGI die Exceptionbehandlung "extremst aufmotzen" und in 'ne Datei loggen, was gemacht wird, um so die Fehlerursache eingrenzen zu können.

Muss es ein CGI-Module sein? Ginge auch 'ne ISAPI-Dll? Damit müsste der IIS zurechtkommen.

Zum "Umbau" braucht es nicht viel: Neues Projekt für 'ne ISAPI-Dll erstellen, dort das erstellte Webmodul rauswerfen, das Webmodul des CGIs aufnehmen, kompilieren, fertig (auf der Delphiseite).

Vorteil von CGIs: Sie reißen im Fehlerfalle den Webserver nicht mit runter, was bei 'ner ISAPI-Dll passieren kann. Nachteil: Es ist deutlich langsamer, da es immer neu geladen und initialisiert werden muss. Das passiert bei 'ner ISAPI-Dll nur einmalig. Bei CGIs ist die Fehlerbehandlung oft ein "Schwarzes Loch", da man Fehler nicht zwingend mitbekommt, bei ISAPI-Dlls könnte vom Webserver ein etwas verständlicherer Fehlerhinweis kommen.

Den IIS hab' ich nie selbst konfigurieren müssen, von daher kann ich nicht sagen, was dort dann erforderlich ist. Bei meinem Webserver reicht es aus, die DLL in das entsprechende Verzeichnis zu kopieren und man kann sie nutzen. Ob's beim IIS auch so einfach ist, weiß ich nicht. Ob's das Problem löst allerdings auch nicht

Eventuell weiß da jemand mehr: Bei Google suchenC0000025 exitcode
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Win-CGI mit Delphi: Start eines anderen Prozesses

  Alt 14. Mär 2019, 07:12
Mosche,

die cgi läuft bei denen so schon seit Jahren, IIS also korrekt konfiguriert, das passt.

"Problem": Ich muss aus der CGI diese exe nochmal aufrufen, mit anderen Startparametern. Die Startparameter von Hand in den Browser getippt läuft auch alles reibungslos. Nur eben das Starten aus der laufenden cgi raus nicht. Ich habe die Tage versucht per Indy HttpClient die cgi über den Webserver nochmal auszuführen, klappt aber leider nicht.

Danke jedenfalls für den Tipp mit dem Exitcode - wäre nie im Leben drauf gekommen, damit im Netz zu suchen / als Hex zu suchen.

Umbau auf irgend was anderes is nicht, Umstellung auf Linux ist im Gange, aber bis dahin muss die Win-Version noch laufen, egal wie....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz