所以我做了一个小型服务计划,但它不会启动。 它自己安装,但我没有在自动启动。 它位于Windows 7,64位系统上。
当我在“服务”中找到它时,右键单击该服务并启动它,大约30秒后它将超时错误1053.
我正在运行程序作为发布,而不是调试。 试图安装为本地管理员,并作为本地管理员做一切。 OnStart()和OnStop()方法是空的,没有代码,我删除它以消除它可能是什么。 尝试在OnStart()的开头放置一个我知道可以工作的小日志记录操作(我在安装成功时使用它来创建日志文件),但它从未到达它。
帮助?
编辑:
这是我的Program.cs代码:
namespace TestService
{
static class Program
{
// The main entry point for the application.
static void Main()
{
//Install self
SelfInstaller.InstallMe();
}
}
}
这是我的Library.cs:
namespace TestService
{
//Library to store public methods
public static class Library
{
//Method to write to a logfile
public static void WriteLogFile(string Message)
{
StreamWriter sw = null;
try
{
sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\Logfile.txt", true);
sw.WriteLine(DateTime.Now.ToString() + ": " + Message.ToString());
sw.Flush();
sw.Close();
}
catch
{
//empty
}
}
}
}
这是我的Service1.cs:
namespace TestService
{
public partial class Service1 : ServiceBase
{
//Initialize
public Service1()
{
InitializeComponent();
}
//On service start
protected override void OnStart(string[] args)
{
}
//On service stop
protected override void OnStop()
{
}
}
}
答案 0 :(得分:0)
好像你发现了一个tutorial,但只有一半了。
每次尝试启动时,您当前的main()
代码都会安装该服务:
static void Main()
{
//Install self
SelfInstaller.InstallMe();
}
因此,不会让ServiceManager知道服务已经启动 - 因为它不是。
您需要在main()
中决定是否要启动,安装,卸载或调试服务。使用命令行参数这是很常见的,其中没有提供的参数意味着“启动服务”。
如何执行此操作也会在该教程中显示。