Windows服务自动停止
问题描述:
我想从Windows服务调用存储过程,之后我想自己停止服务。以下是我有:Windows服务自动停止
public DailyChecker()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
SqlConnection connection = new SqlConnection(connectionString);
try
{
connection.Open();
SqlCommand cmd = new SqlCommand("sp_ChangeState", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
finally
{
connection.Close();
}
}
protected override void OnStop()
{
base.OnStop();
}
我遇到的问题是,当我启动服务,它在例如自动停止,并显示一个消息框。
答
我有serviceProcessInstaller的财产帐户更改为本地系统的情况。现在它的工作
答
不知道我完全理解你的appraoch,但这应该仅仅是调用base.OnStop
try
{
connection.Open();
SqlCommand cmd = new SqlCommand("sp_ChangeState", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
finally
{
connection.Close();
}
base.OnStop();
+1
尝试追踪错误后尝试添加catch块。可能是因为您的SP呼叫失败并导致服务崩溃 – 2012-03-30 07:39:19
+0
我已将serviceProcessInstaller的属性Account更改为LocalSystem。现在它正在工作 – Darshana 2012-03-30 08:12:07
除了我不知道为什么你需要一个Windows服务在这种情况下,我真的不明白为什么服务应该停止 - 但我猜服务运行的帐户有一些访问权限你的数据库有问题......你有没有试过在windows-eventlog中查看,以及这个messagebox告诉你什么? – Carsten 2012-03-30 07:30:24
你是对的有一个访问问题。我会处理的。 Thanx – Darshana 2012-03-30 07:38:37
我已将serviceProcessInstaller的属性Account更改为LocalSystem。现在它正在工作 – Darshana 2012-03-30 08:11:49