无法使用Windows服务中的DLL连接

时间:2014-03-03 17:21:44

标签: c# windows service

我有一个Windows窗体应用程序,工作正常。我现在用FileSystemWatcher创建了一个Windows服务,它没问题。但是当我从之前的Windows窗体中复制代码时,它无效。 (它正在Windows窗体上工作)有什么我需要注意使用Windows服务?。应用程序(Windows窗体)是接收文件,使用该信息进行一些操作,然后使用DLL,通信与规模。

      [DllImport("mydll.dll")]
        public static extern int OPENETHNET();

    [DllImport("mydll.dll")]
    public static extern int ETHWRITE(string in1);

    [DllImport("mydll.dll")]
    public static extern int ETHREAD(StringBuilder in2);

    [DllImport("mydll.dll")]
    public static extern int CLOSEETHNET();  

然后我像这样使用它:

        string inputStatus = "050";
        StringBuilder resultStatus = new StringBuilder(1024);


        openRest = OPENETHNET();

        if (ETHWRITE(inputStatus) == 1)
        {
            ETHREAD(resultStatus);
        }
        CLOSEETHNET();

它甚至没有打开连接..
我试图将帐户更改为LocalService和其他选项,但仍然相同..任何ideias?

编辑: 我看到帖子Call to native DLL fails from a .NET Windows service和它似乎是同一个问题 我尝试了其他解决方案,但它没有用,所以我会尝试最后一个选项,它将“将dll包装在一个将在启动时运行的Web服务中,然后从该服务调用该Web服务网络服务。“
谁能解释我怎么做?

1 个答案:

答案 0 :(得分:0)

经过大量的测试我发现问题出在dll文件中,所以我放弃了windows服务并实现了winform(我知道dll文件工作的地方)并使用winform就像一个服务,我现在这个解决方案不是最好的,但是,工作正常......