3 votes

fastcgi-mono-server4 debugging on nginx, is it possible ?

De nombreuses informations sont disponibles sur la manière de configurer le débogage à l'aide du serveur xsp à des fins de développement local. exemple sur le site officiel de Mono :

Je voudrais des numéros de ligne dans mes traces de pile

Par défaut, xsp et xsp2 fonctionnent en mode "release", ce qui signifie qu'aucune information de débogage n'est générée au moment de l'exécution. de débogage n'est générée lors de l'exécution. Si vous voulez des numéros de ligne dans vos traces de pile, vous devez passer l'option --debug à Mono. Mono, en invoquant xsp ou xsp2 avec l'option 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 utilisez mod_mono avec Apache, vous devez utiliser l'option MonoDebug dans votre fichier de configuration, comme ceci :

MonoDebug true

Est-ce possible sur nginx ?

4voto

Dyna Points 1625

Je viens de rencontrer le même problème et j'ai pu le résoudre :)

Les MONO_OPTIONS peut contenir des paramètres supplémentaires qui sont transmis à l'exécutable mono. Ainsi, 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 qui contiennent les informations de débogage.

J'utilise personnellement une version modifiée de le script init script trouvé ici qui se présente comme suit :

#!/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 ATTENTION : Si vous utilisez ce init script pour démarrer le démon fastcgi, N'UTILISEZ PAS d'outils init comme "service monoserve start" (RHEL/CentOS) ou "rcMonoserve start". Pour moi, cela ne fonctionnera pas, je soupçonne le système d'initialisation d'engendrer un autre processus avec des variables d'environnement différentes. Pour être sûr, n'appelez le script que directement, c'est-à-dire /etc/init.d/monoserve start et le mettre dans /etc/rc.local ou autre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X