fastcgi-mono-server4 débogage sur nginx, est-ce possible?

De nombreuses informations sont disponibles sur la façon de définir le débogage à l’aide du serveur xsp à des fins de développement local, à partir d’un exemple du site officiel mono:

Je voudrais des numéros de ligne dans les traces de ma stack

Par défaut, xsp et xsp2 s’exécutent en mode “release”, ce qui signifie qu’aucune information de débogage n’est générée lors de l’exécution. Si vous voulez des numéros de ligne dans les traces de votre stack, vous devez passer l’option –debug à Mono, en appelant xsp ou xsp2 avec la variable d’environnement MONO_OPTIONS, comme ceci:

$ MONO_OPTIONS=--debug xsp Listening on port: 8080 (non-secure) Listening on address: 0.0.0.0 Root directory: /tmp/us Hit Return to stop the server. 

Si vous exécutez mod_mono avec Apache, vous devez utiliser la directive MonoDebug dans votre fichier de configuration, comme ceci:

 MonoDebug true 

Est-ce possible sur nginx?

J’ai juste rencontré le même problème moi-même et j’ai pu le réparer 🙂

La variable d’environnement MONO_OPTIONS peut contenir des parameters supplémentaires qui sont transmis à l’exécutable mono. Donc, si vous faites:

 export MONO_OPTIONS="--debug" fastcgi-mono-server-4 /applications="/:/srv/www/htdocs/mywebapp" /socket=tcp:127.0.0.1:9000 

Vous devriez obtenir des informations de débogage (numéros de lin et fichiers) en cas d’erreur, à condition bien sûr que vous ayez également déployé les fichiers * .mdb contenant les informations de débogage.

J’utilise personnellement une version modifiée du script d’initialisation trouvé ici, à savoir:

 #!/bin/sh ### BEGIN INIT INFO # Provides: monoserve.sh # Required-Start: $local_fs $syslog $remote_fs # Required-Stop: $local_fs $syslog $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start fastcgi mono server with hosts ### END INIT INFO source /etc/mono-addon-env NAME=monoserver DESC=monoserver MONO_OPTIONS="--debug" MONOSERVER=$(which fastcgi-mono-server4) MONOSERVER_PID=$(ps auxf | grep fastcgi-mono-server4.exe | grep -v grep | awk '{print $2}') WEBAPPS="/:/srv/www/htdocs/mywebapp/" case "$1" in start) if [ -z "${MONOSERVER_PID}" ]; then echo "starting mono server" ${MONOSERVER} /applications=${WEBAPPS} /socket=tcp:127.0.0.1:9000 & echo "mono server started" else echo ${WEBAPPS} echo "mono server is running" fi ;; stop) if [ -n "${MONOSERVER_PID}" ]; then kill ${MONOSERVER_PID} echo "mono server stopped" else echo "mono server is not running" fi ;; esac exit 0 

Mais PAY ATTENTION : Si vous utilisez ce script d’initialisation pour démarrer le démon fastcgi, N’UTILISEZ AUCUN outil d’initialisation tel que “service monoserve start” (RHEL / CentOS) ou “rcMonoserve start”. Pour moi, cela ne fonctionnera pas, je pense que le système d’initialisation engendrera un autre processus avec des variables d’environnement différentes. Pour être sûr, appelez le script directement, c.-à-d. /Etc/init.d/monoserve start et mettez-le dans /etc/rc.local ou autre.