Ich versuche, einen Windows-Dienst in C# zu erstellen, um täglich automatisch E-Mails zu senden, basierend auf Daten aus einer angegebenen SQL-Server-Datenbank gelesen.Windows Service C# Datenbank Verbindungsprobleme
Ich habe gemanaged, um den Dienst zu starten, um E-Mails automatisch zu senden, aber wenn ich versuche, einen sqlconnection
Dienst einzufügen, funktioniert einfach nicht mehr. Irgendwelche Ideen?
Es funktioniert, wenn ich SqlConnection
und Datenleser entfernen.
Hier ist mein Code:
System.Timers.Timer createOrderTimer;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
createOrderTimer = new System.Timers.Timer();
createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetMail);
createOrderTimer.Interval = 2500;
createOrderTimer.Enabled = true;
createOrderTimer.AutoReset = true;
createOrderTimer.Start();
}
protected override void OnStop()
{
}
public void GetMail(object sender, System.Timers.ElapsedEventArgs args)
{
SqlConnection connect = new SqlConnection("Server=10.222.160.17,5356;"
+ "Database=tracking_tool;"
+ "Trusted_Connection=True;"
+ "user=admin;"
+ "password=root");
string line = "";
connect.Open();
SqlCommand GetData = new SqlCommand("select * from validation", connect);
SqlDataReader ReadData = null;
ReadData = GetData.ExecuteReader();
while (ReadData.Read())
{
line = ReadData["Line"].ToString();
}
connect.Close();
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("[email protected]");
mailMessage.From = new MailAddress("[email protected]");
mailMessage.Subject = "example";
mailMessage.Body = "example";
SmtpClient smtpClient = new SmtpClient("10.214.81.97");
smtpClient.Send(mailMessage);
}
erhalten Sie irgendwelche Fehler? – Ted
So erhalten Sie keine Ausnahmen, dies könnte helfen, das Problem zu untersuchen. Sind Sie auch sicher, dass die Verbindungszeichenfolge richtig ist? Es gibt ein Komma in der IP. Ich bin kein Experte, aber ich habe das nie zuvor erlebt. –
Trusted_Connection = True verschleiert den Benutzernamen und das Passwort und wenn Sie sich in einem Dienst befinden, ist der Benutzer, der den Dienst ausführt, derjenige, der der SQL Server-Authentifizierung angeboten wird. Ich würde versuchen, die Trusted_Connection zu entfernen und benutze den Benutzernamen und das Passwort – Steve