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:
- Quelles sont les extensions de fichier de plate-forme .NET?
- Déploiement multi-hôte des applications ASP.NET Core
- Mauvaise passerelle 502 après un petit test de charge sur fastcgi-mono-server via nginx et ServiceStack
- Mono 2.11 avec nginx ou apache
- Déploiement du projet ASP.Net Web Forms sur Fedora 24
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.