首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从windows服务调用我的dll?

如何从windows服务调用我的dll?
EN

Stack Overflow用户
提问于 2012-02-25 08:50:55
回答 2查看 12.7K关注 0票数 3

我创建了一个ftp库文件,它将转到本地路径,例如(c:\test.txt)找到文件并上传到c#服务器。

为了测试,我只是从控制台应用程序调用了dll,但是我如何才能作为windows服务运行,它将继续运行?

我想把这个动态链接库作为一个服务来监控c:\文件夹,如果有类似"test.txt“的文件,就上传。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-25 09:06:32

当你使用DLL的函数时,它就被“调用”了。因此,如果您的DLL项目在您的类中包含几个类和几个函数,则只需通过add the DLL as a reference连接到您的服务项目并调用适当的函数。

你可能想使用this library来创建你的视窗服务。原因是,当您使用Visual Studio模板构建Windows服务时,结果构建并不是真正的“运行”。生成的版本是一个Windows Service,必须先安装它,然后再安装started using the Services Snap-In。但使用Hoytsoft的自定义Windows服务库,您的服务将自动安装,然后自动启动-就像常规的Windows窗体应用程序一样。

要确保您的服务在启动时运行,请记住将您的服务类配置为AutoStart (如他的CodeProject文章中所述)。为了确保您的服务连续运行,即使进程被终止,您也可以添加这个方便的注册表技巧,它将重新启动服务标志设置为立即重新启动。

此注册表黑客==

注册表攻击:

代码语言:javascript
复制
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Services\<YOUR_SERVICE_NAME_HERE>", true);
key.SetValue("FailureActions", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, Microsoft.Win32.RegistryValueKind.Binary);
key.Close();

要知道,任何管理用户仍然可以通过简单地禁用您的服务来终止您的进程。

票数 6
EN

Stack Overflow用户

发布于 2012-02-26 02:33:08

查看FileSystemWatcher类以查看对目录/文件的更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9440109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档