在尝试终止 mono 进程时,我运行了ps -aux | grep mono
。它出现了一个昨天启动的条目,由用户 www-data 运行,并使用命令/usr/bin/mono /usr/lib/mono/4.5/xsp4.exe --port 8084 --address 0.0.0.0 --appconfigdir /etc/xsp4 --nonstop
。基于此,我转到 localhost:8084,然后出现错误:
System.ArgumentOutOfRangeException
startIndex cannot be larger than length of string.
Parameter name: startIndex
Description: HTTP 400.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): mscorlib.
它提到它在 ASP.NET 4.0 上运行。这个过程正常吗?我使用 MonoDevelop 开发 ASP.NET 应用程序,但这似乎无关,因为我最近重新启动了 MonoDevelop。
答案1
正如指出的那样Thomas 在 AskUbuntu 上给出的这个回答,停止或禁用此服务器很容易,但您可能需要考虑是否真的希望它运行。我在自己的 Kubuntu 18.04 LTS 机器上研究这个完全相同的问题时发现了这个问题,它帮助我更深入地了解了它到底是什么。事实证明,它用于为 提供服务,因为我能够通过探索在和monodoc-http
中找到的文件内容来确定。/etc/xsp4
/usr/share/monodoc/web
如果您安装了 MonoDevelop 或 MonoDoc 或任何与在 Mono 中开发代码相关的程序,那么它就是从那里来的。如果您是故意这样做的,因为您正在学习或使用 Mono 编码,那么您可能确实希望运行该服务。如果您不需要 MonoDoc 服务,您可以使用 轻松在 Ubuntu 版本上禁用它们systemctl
。
sudo systemctl stop mono-xsp4.service
将停止服务
(但不会禁用它,因此将要下次重启后再次运行)。sudo systemctl disable mono-xsp4.service
将禁用服务
(但如果它正在运行,则不会停止它)。
你需要运行两个都如果你希望立即停止该服务,请输入命令和禁用该服务,以便下次重启后它不再运行。如果您确定 MonoDoc 和相关服务根本不需要,您也可以在包管理器中搜索它们并完全卸载它们。
至于为什么会引发异常,那我愿意不是知道。如果直接在浏览器中访问,它在我的系统上也会发生同样的情况。我对此的最佳猜测是,它可能需要传入 MonoDoc 默认会提供的参数,而直接在浏览器中访问它不是给? (欢迎任何确切知道的人编辑此答案以包含该信息,或与我联系以获取该信息,以便我可以更新此信息。)
笔记: 这是几乎完全相同的复制/粘贴我的回答我在这里链接的同一个 AskUbuntu 问题,因为它也恰好是这个问题的准确答案......