Отладка fastcgi-mono-server4 на nginx, это возможно? - PullRequest
3 голосов
/ 15 ноября 2011

Доступно много информации о том, как настроить отладку с использованием сервера xsp для локальных целей разработки, просто пример с официального моно-сайта:

Я хотел бы строкучисла в трассировке моего стека

По умолчанию xsp и xsp2 работают в режиме «релиза», что означает, что во время выполнения не генерируется отладочная информация.Если вам нужны номера строк в трассировке стека, вы должны передать опцию --debug в Mono, это можно сделать, вызвав xsp или xsp2 с переменной среды MONO_OPTIONS, например:

$ 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.

Если выЗапустив mod_mono с Apache, вы должны использовать директиву MonoDebug в вашем файле конфигурации, например:

MonoDebug true

Возможно ли это на nginx?

1 Ответ

4 голосов
/ 17 января 2012

Я сам столкнулся с той же проблемой и смог ее исправить:)

Переменная окружения MONO_OPTIONS может содержать дополнительные параметры, которые передаются в монофонический исполняемый файл.Поэтому, если вы сделаете:

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

Вы должны получить отладочную информацию (белье и файлы) при ошибке, при условии, конечно, что вы также развернули файлы * .mdb, которые содержат отладочную информацию.

Я лично использую модифицированную версию сценария инициализации, найденную здесь , которая выглядит следующим образом:

#!/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

Но ОБРАТИТЕ ВНИМАНИЕ : Если вы используете этот сценарий инициализации дляЗапустите демон fastcgi, НЕ ИСПОЛЬЗУЙТЕ никаких инструментов инициализации, таких как «запуск службы monoserve» (RHEL / CentOS) или «запуск rcMonoserve».Для меня это не сработает, я подозреваю, что система init будет порождать другой процесс с другими переменными окружения.Чтобы быть в безопасности, вызывайте только скрипт напрямую, т.е. /etc/init.d/monoserve start и вставьте в /etc/rc.local или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...