我们正在.net 3.5平台上开发Windows服务应用程序。我们的一位客户要求在资源非常低(200MB可用磁盘空间和1GB RAM)的Windows XP Embedded上安装此应用程序。无法安装.NET。 我们决定将嵌入式MONO(3.0.1)用于托管应用程序负载。 Mono loader是作为本机Windows服务创建的,它根据以下示例加载受管应用程序:https://www.mono-project.com/docs/advanced/embedding/ 本机应用程序成功加载了托管程序集,应用程序运行了2到12个小时,然后崩溃了。 Windows服务仍处于活动状态,但托管代码未响应:现在不接受新日志,tcp约定。 当我们停止服务时,将调用托管程序集Stop方法,但该方法将阻塞并且无法停止服务,只能终止进程。 应用程序停止响应后,CPU负载为0% Windows事件日志上没有记录。 在托管程序集中,所有异常都得到处理
什么会导致这种问题? 我还能检查什么来找出应用程序崩溃的原因? 是否可以在mono中添加一些其他日志记录?
在Windows XP上,服务运行没有任何问题。