日期:2014-05-19  浏览次数:20777 次

C#服务的初始化问题
写了一个服务,在服务启动的时候初始化服务参数,需要连接数据库,但是当机器启动的时候,往往数据库还没有启动起来,会出现连接数据库错误

请问,初始化时连接数据库如何处理比较好

------解决方案--------------------
让数据库服务先启动,c#服务后启动,msdn有启动服务的实例.
------解决方案--------------------
设置一个BeReady变量,启动失败的话就间隔一段时间再次尝试启动,而APP访问过来时就告诉服务还没完成启动,一直到完成后设置BeReady OK就行啦!
------解决方案--------------------
Form1 frm = new Form1();//这个是用来选择依赖服务的窗体,可以不用管它是什么样的。
if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.serviceInstaller1.ServicesDependedOn = frm.Services;//关键是这句,设置依赖服务。如果依赖服务没有启动。服务会等待,如果依赖服务被禁用,服务会启动失败。
}
frm.Dispose();
base.Install(stateSaver);
------解决方案--------------------
这段代码写在ProjectInstaller的Install函数里面!
------解决方案--------------------
LZ,用依赖是最简单最方便的,你都不用自己去写代码探测,你这样不是把问题复杂化了吗?