Gewusst wie: übergeben Sie Parameter für Windows-Service?
Habe ich versucht, Parameter für eine windows-Dienst.
Hier ist mein code-snippet:
class Program : ServiceBase
{
public String UserName { get; set; }
public String Password { get; set; }
static void Main(string[] args)
{
ServiceBase.Run(new Program());
}
public Program()
{
this.ServiceName = "Create Users Service";
}
protected override void OnStart(string[] args)
{
base.OnStart(args);
String User = UserName;
String Pass = Password;
try
{
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry NewUser = AD.Children.Add(User, "user");
NewUser.Invoke("SetPassword", new object[] { Pass });
NewUser.Invoke("Put", new object[] { "Description", "Test User from .NET" });
NewUser.CommitChanges();
DirectoryEntry grp;
grp = AD.Children.Find("Administrators", "group");
if (grp != null)
{
grp.Invoke("Add", new object[] { NewUser.Path.ToString() });
}
Console.WriteLine("Account Created Successfully");
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
Wie gebe ich Benutzername und Passwort ein, um diesen windows-Dienst?
InformationsquelleAutor der Frage Ragaei Mahmoud | 2011-06-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die übergabe von Parametern beim Start so:
Wenn Sie eingeben, gibt es zum Beispiel
User Password
erhalten Sie diese Parameter inprotected override void OnStart(string[] args)
wie args.dann verwenden Sie es wie diese:
InformationsquelleAutor der Antwort Reniuz
Sind Sie gehen zu müssen, laden Sie diese Werte aus einer externen Quelle. Die einfachste Möglichkeit ist, laden Sie Sie direkt aus einer app.config-file, mithilfe der Configuration Manager. So etwas wie dieses: http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
InformationsquelleAutor der Antwort Robert Anton Reese
Können Sie KonfigurationsdateiRegistry oder jede Art von Datenbanken.
InformationsquelleAutor der Antwort Akram Shahda
Umwelt.GetCommandLineArgs()
InformationsquelleAutor der Antwort Julian
Den beiden saubersten Möglichkeiten zum übergeben von Argumenten (ohne Registrierung, Dateien oder eine Datenbank) auf einem Windows-Dienst zur Laufzeit mithilfe von Named Pipes oder das einrichten einer WCF-Dienst in windows, die Ihre client-Aufrufe in. Standardmäßig wird ein Windows-Dienst gemeint ist ein sich wiederholender Prozess, der läuft.
Wenn Sie WCF, schalten Sie es ein in Hinzufügen-Entfernen Sie Programme (oder Programme und Funktionen (Windows 7).
Named Pipes:
https://msdn.microsoft.com/en-us/library/aa365590(v=vs. 85).aspx
InformationsquelleAutor der Antwort MacGyver