当前位置: 首页 > 面试题库 >

使用单服务将Windows服务包装在Linux上

宗政坚白
2023-03-14
问题内容

嗨,我正在尝试使用mono-service2从Visual Studio中运行库存Windows Service
Project。我在单声道2.0的debian上运行它并进行编译。

gmcs *.cs -pkg:dotnet

我尝试从这里开始(我尝试将-d设置为应用程序的目录,并设置了-n,-m)

mono-service2 -l:service.lock --debug Program.exe

唯一的代码更改是添加测试写行

Service1.cs

using System;
using System.ServiceProcess;

namespace spikes
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            Console.WriteLine("starting...");
        }

        protected override void OnStop()
        {
            Console.WriteLine("stopping....");
        }
    }
}

结果就是这个错误

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for Mono.Unix.Native.Syscall ---> System.DllNotFoundException: libMonoPosixHelper.so
  at (wrapper managed-to-native) Mono.Unix.Native.Syscall:_L_ctermid ()
  at Mono.Unix.Native.Syscall..cctor () [0x00000]
  --- End of inner exception stack trace ---
  at MonoServiceRunner.Main (System.String[] args) [0x00000]

谢谢你的帮助

回答

我缺少LD_LIBRARY_PATH env变量,因此我将其添加到csh中进行测试

#!/bin/csh
setenv LD_LIBRARY_PATH .:/usr/local/lib
mono-service2 -l:service.lock --debug Program.exe

问题答案:

您的LD_LIBRARY_PATH指向哪里?是否libMonoPosixHelper.so在那里?



 类似资料:
  • 本文向大家介绍在linux服务器上安装Jenkins,包括了在linux服务器上安装Jenkins的使用技巧和注意事项,需要的朋友参考一下 Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用。本章教大家如何在linux服务器上安装Jenkins。 一、获得一台linux服务器 要在linux下安装git,首先你得先有一台linux服务器,作为小白,手头的机器肯定都是win

  • 我们的项目中使用的是Spring Cloud config server,它有多个微服务。配置服务器就绪后,我们现在将所有微服务的所有属性存储在一个中央git存储库中。每个微服务能够根据应用程序名称和配置文件提取自己的属性文件。我们试图将资源包存储在中央存储库中,并让config-server将这些资源包提供给微服务。我们的资源包包括属性文件,如messages_en.properties、mes

  • 我可以在我自己的电脑上使用这个程序,但是我不能在服务器上使用。 服务器使用最高权限管理员打开程序。 具有的服务器WCF HTTP激活功能。NET4。5号门开着。 服务器endpoint地址使用"http://localhost",如下所示 endpoint地址="http://localhost"绑定="basicHttpBind"bindingConfiguration="NewBinding0

  • 问题内容: 我只是从.net开发转到LINUX MONO开发…,而我之前没有Linux开发方面的丰富经验。 我需要在mono c#中创建后台服务(例如Windows服务)。 并且可以从mono c#访问LINUX本机API。(例如从win c#调用winAPI)。 问题答案: Mono带有与Windows Service兼容的系统,称为Mono-service。 Unix中用于服务的单词是Daem

  • 问题内容: 我一直在Google上寻找很多有关如何在命令行中安装该服务的信息(因此无需手动交互),但我仍然对如何获取jenkins-slave.exe感到困惑。 我找到了那些指令 https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+as+a+Windows+service, 但是我不知道如何获得可执行文件。我已经下载并使用正确的键运