Mono c #: mkbundle'd "Hello World" -Skript führt nur mit dem Exit-Code "11" auf einem Webserver aus

StackOverflow https://stackoverflow.com//questions/24014152

  •  21-12-2019
  •  | 
  •  

Frage

Ich möchte den Code von Mono (C #) auf einem Webserver ausführen, der keine Mono-Laufzeit installiert hat. Da Mkbundle einheimischer Code erstellen kann, versuche ich zunächst, ein einfaches "Hello World" -Skript, um auf beiden Seiten zu arbeiten, die lokal ausgeführt, aber nicht auf dem Webserver.

c # hellowerd.cs-Skript:

generasacodicetagpre.

Ich kompiliere und bündelte mit: $ gmcs helloworld.cs -out: helloworld.exe
$ mkbundle -o hellodeorld hellowerd.exe --static --deps

meine einzige erlaubte Art, dieses Skript auf dem Webserver auszuführen, ist mit einem PHP-Skript, das folgende enthält:

generasacodicetagpre.

lokal funktioniert dieses Skript und ich bekomme die folgende Antwort:

Array (1) { [0]=> String (13) "Hallo, Welt!" } int (0)

aber auf dem Webserver wird das gesamte Skript zurückgegeben

Array (0) {} int (11)

bash exitcode 11 ist nicht standardmäßig nach diesen und diese Verlassen Sie Codelisten.

Beide Maschinen sind auf einem 64-Bit-Linux und einem "File HellowDorld" gibt Folgendes zurück.
Auf lokaler Maschine:

helloworld: ELF 64-Bit LSB-ausführbar, X86-64, Version 1 (SYSV), dynamisch verknüpft (verwendet gemeinsame LIBS), für GNU / Linux 2.6.24, BuildId [SHA1]= FBC9731FB13202C604B025BA3EEFE51C69DC40D8, nicht abgezogen .

auf dem Webserver:

hellowerd: ELF 64-Bit-LSB-Executable, X86-64, Version 1 (SYSV), dynamisch verknüpft (mit gemeinsam genutzten Libs verwendet), abgenommene

könnte "dynamisch verknüpft (verwendete freigegebene LIBS), striped" bedeutet immer noch, dass einige eingebettete Bibliotheken oder Mono-Laufzeit noch fehlen?

War es hilfreich?

Lösung

Ich habe eine virtuelle Maschine mit demselben Betriebssystem als Webserver erstellt, wenn das Bündel ausgeführt wurde, den ich erhielt "Segmentierungsfehler (Core deped) ', der den Exit-Code' 11 'hat.MKBUNDLE ist keine vollkompatibel, um Mono-schriftliche Software auf Linux-Maschinen bereitzustellen.

So installierte ich am Ende Mono auf der virtuellen Maschine, kompiliert und mkbundle den Code, und nachdem er die Datei auf den Webserver hochgeladen habe, konnte sie diese ausführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top