我有一个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服务网络服务。“
谁能解释我怎么做?
答案 0 :(得分:0)
经过大量的测试我发现问题出在dll文件中,所以我放弃了windows服务并实现了winform(我知道dll文件工作的地方)并使用winform就像一个服务,我现在这个解决方案不是最好的,但是,工作正常......