有很多关于如何使用xsp服务器设置调试以进行本地开发的信息,只需来自官方单声道网站的example:
我想在我的堆栈跟踪中使用行号
默认情况下,xsp和xsp2以“release”模式运行,这意味着没有 调试信息在运行时生成。如果你想要线 堆栈跟踪中的数字,必须将--debug选项传递给 单声道,这是通过使用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上使用?
答案 0 :(得分:4)
我自己遇到了同样的问题并且能够解决它:)
MONO_OPTIONS
环境变量可以包含传递给单声道可执行文件的其他参数。所以如果你这样做:
export MONO_OPTIONS="--debug"
fastcgi-mono-server-4 /applications="/:/srv/www/htdocs/mywebapp" /socket=tcp:127.0.0.1:9000
您应该在出错时获取调试信息(亚麻和文件),前提是您还部署了包含调试信息的* .mdb文件。
我个人使用the init script found here的修改版本,如下所示:
#!/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等。