Mono C#:mkbundle seria "Olá Mundo" script é executado apenas com o código de saída "11" em um servidor web

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

  •  21-12-2019
  •  | 
  •  

Pergunta

Eu gostaria de executar Mono(C#) código em um servidor Web que não tenha Mono Runtime instalado.Desde mkbundle é capaz de produzir código nativo, eu sou o primeiro a tentar obter um simples "Hello World" script para trabalhar em ambos os lados, que é executado localmente, mas não no servidor Web.

C# HelloWorld.cs script:

 using System;

 public class HelloWorld
 {
    public static void Main()
    {
       System.Console.WriteLine("Hello, World!");
    }
 }

Eu faço a compilação e empacotamento utilizando:$ gmcs HelloWorld.cs -out:HelloWorld.exe
$ mkbundle -o helloworld HelloWorld.exe --static --deps

Minha única permitida para executar esse script no servidor web está usando um script PHP, que tem o seguinte:

 $cmd = "./helloworld";
 exec($cmd, $array, $return_code);
 var_dump($array);
 //passthru($cmd, $return_code);
 var_dump($return_code);

Localmente, este script funciona e recebo a seguinte resposta:

matriz(1) { [0]=> string(13) "Olá, Mundo!" } int(0)

Mas no servidor web este é o script retorna

array(0) { } int(11)

Bash código de saída 11 é não-padrão, de acordo com este e este sair listas de códigos.

Ambas as máquinas estão em um de 64 bits do Linux e um arquivo "helloworld" retorna o seguinte...
No computador Local:

helloworld:ELF 64-bit LSB executável, x86-64, versão 1 (SYSV), vinculado dinamicamente (usa shared libs), para o GNU/Linux 2.6.24, BuildID[sha1]=fbc9731fb13202c604b025ba3eefe51c69dc40d8, não destalado

No servidor Web:

helloworld:ELF 64-bit LSB executável, x86-64, versão 1 (SYSV), vinculado dinamicamente (usa shared libs), despojado

Pode "vinculado dinamicamente (usa shared libs), stripped" ainda significa que alguns incorporado ou bibliotecas de mono runtime ser que ainda falta?

Foi útil?

Solução

Eu criei uma máquina virtual com o mesmo sistema operacional, como o Servidor Web, ao executar o bundle tenho 'Segmentation fault (core despejado)", que tem o código de saída '11'.mkbundle não é totalmente compatível maneira de implantar Mono software escrito em máquinas Linux.

No fim, eu Mono instalado na máquina virtual, compilado e mkbundle tinha o código, e depois de fazer upload do arquivo para o Servidor Web, ele foi capaz de executá-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top