繁体   English   中英

在nginx上调试fastcgi-mono-server4,有可能吗?

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

有很多关于如何使用xsp服务器设置调试以进行本地开发的信息,这只是官方单声道网站的一个例子

我想在我的堆栈跟踪中的行号

默认情况下,xsp和xsp2以“release”模式运行,这意味着在运行时不会生成调试信息。 如果要在堆栈跟踪中使用行号,则必须将--debug选项传递给Mono,这可以通过使用MONO_OPTIONS环境变量调用xsp或xsp2来完成,如下所示:

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

如果您使用Apache运行mod_mono,则必须在配置文件中使用MonoDebug指令,如下所示:

 MonoDebug true 

在nginx上有可能吗?

我自己遇到了同样的问题并且能够解决它:)

MONO_OPTIONS环境变量可以包含传递给单声道可执行文件的其他参数。 所以,如果你这样做:

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

您应该在出错时获得调试信息(亚麻和文件),前提是您还部署了保存调试信息的* .mdb文件。

我个人使用修改后的init脚本 verison,如下所示:

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

但请注意 :如果您使用该init脚本启动fastcgi守护程序,请不要使用任何初始化工具,如“service monoserve start”(RHEL / CentOS)或“rcMonoserve start”。 对我来说这不起作用,我怀疑init系统会产生另一个具有不同环境变量的进程。 为了安全起见,只能直接调用脚本,即/etc/init.d/monoserve start并将其放入/etc/rc.local等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM