我使用Visual Studio 2008在C#中构建了一个Windows服务。我已经构建了它,使用Visual Studio命令提示符导航到存储它的文件夹,并使用命令:installutil MyWindowsService.exe。它安装得很好,我可以在服务管理器中看到它。但是,当我去运行它时,它不会执行我的任何代码。代码应该发送一封电子邮件到我的Gmail地址,确认它确实有效。我已经在控制台应用程序中测试了这段代码,它运行得很好。但是,服务不会执行它。
关于我应该尝试什么的任何想法?
提前致谢。
答案 0 :(得分:4)
检查事件查看器是否有错误。如果这不会导致问题,请在Debugger.Break()
方法中添加OnStart()
,以便在服务启动后立即附加调试程序。
答案 1 :(得分:2)
安装服务的权限是什么?如果它是本地服务,这可能解释您的问题,因为我不相信本地服务是允许网络访问。如果您需要网络访问,则需要为服务用户使用网络服务,但请注意,在执行此操作时,您将在本地框中放弃该服务的某些管理权限。
作为服务信任模型的一部分,您可以在没有网络权限的本地计算机上拥有非常好的权利,或者在本地计算机上具有严格限制权限的网络权限。
如果您需要两者,那么您必须将您的服务作为本地创建的用户运行,您可以自己控制权限。