【发布时间】:2021-06-22 06:59:03
【问题描述】:
我一直在编写一个 Windows 服务,当 PC 开启和关闭时,它会在数据库中插入 SQL Server。
当我手动启动服务并手动关闭它时,它会执行插入操作,但在打开和关闭 PC 时它不起作用。我是不是做错了什么?
我使用 Windows 服务 (.NET) 项目在 Visual Studio Code 中编写代码。
谢谢
我留下了部分代码(OnStart、OnShutdown),这样你就可以看到我做了什么:
// OnStart
protected override void OnStart(string[] args)
{
try
{
InsertaObrir();
}
catch (Exception)
{
StringBuilder sb = new StringBuilder();
sb.Append("Error Start: " + "\n");
File.AppendAllText(Properties.Settings.Default.RutaArxiuLog, sb.ToString());
sb.Clear();
}
}
// OnShutdown
protected override void OnShutdown()
{
try
{
InsertaSortir();
}
catch (Exception)
{
StringBuilder sb = new StringBuilder();
sb.Append("Error Sortir: " + "\n");
File.AppendAllText(Properties.Settings.Default.RutaArxiuLog, sb.ToString());
sb.Clear();
}
}
// IntentaObrir
private void InsertaObrir()
{
StringBuilder sb = new StringBuilder();
sb.Append("Inicia: " + DateTime.Now + "\n");
File.AppendAllText(Properties.Settings.Default.RutaArxiuLog, sb.ToString());
sb.Clear();
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = Properties.Settings.Default.IP;
builder.UserID = Properties.Settings.Default.UserID;
builder.Password = Properties.Settings.Default.Password;
builder.InitialCatalog = Properties.Settings.Default.BaseDeDades;
int num = CreateCommand(builder.ConnectionString, true);
// This line works so it's not the problem
sb.Append("Inserta -> " + num + "\n");
File.AppendAllText(Properties.Settings.Default.RutaArxiuLog, sb.ToString());
sb.Clear();
}
// IntentaSortir
private void InsertaSortir()
{
StringBuilder sb = new StringBuilder();
sb.Append("Apaga: " + DateTime.Now + "\n");
File.AppendAllText(Properties.Settings.Default.RutaArxiuLog, sb.ToString());
sb.Clear();
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = Properties.Settings.Default.IP;
builder.UserID = Properties.Settings.Default.UserID;
builder.Password = Properties.Settings.Default.Password;
builder.InitialCatalog = Properties.Settings.Default.BaseDeDades;
int num = CreateCommand(builder.ConnectionString, false);
// This line works so it's not the problem
sb.Append("Inserta -> " + num + "\n");
File.AppendAllText(Properties.Settings.Default.RutaArxiuLog, sb.ToString());
sb.Clear();
}
【问题讨论】:
-
你有什么异常吗?您是否声明了所有必需的依赖项 - 请参阅 stackoverflow.com/questions/5159257/…?
-
不,它不会出错。我刚刚发布了解决方案。还是谢谢
标签: c# sql-server windows-services