Ich versuche, einen Dienst bereitzustellen, den ich geschrieben habe. Hier ist die InstallLog-Datei:Installieren eines selbst entwickelten Windows-Dienstes
Wie Sie sehen können, funktioniert es nicht. Ich bin mir nicht sicher, wie es weitergehen soll und bin mit Bing und Google an die Wand gegangen. Ich habe das Konto auf LocalSystem für den ServiceProcessInstaller1 festgelegt. Der Code kompiliert gut, aber jetzt möchte ich das Ding laufen lassen ... irgendwelche Ideen? Ich bin ein Administrator auf meiner Box, und ich bin mit dem Befehl:
InstallUtil TweetLinkQueue.exe
aus der VS2008 Admin-Konsole.
AKTUALISIERT MIT/ShowCallStack Option
Call Stack
An exception occurred during the Install phase.
System.Security.SecurityException: The source was not found, but some or all eve
nt logs could not be searched. Inaccessible logs: Security.
at System.Diagnostics.EventLog.FindSourceRegistration(String source, String m
achineName, Boolean readOnly)
at System.Diagnostics.EventLog.SourceExists(String source, String machineName
)
at System.Diagnostics.EventLogInstaller.Install(IDictionary stateSaver)
at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
at System.ServiceProcess.ServiceInstaller.Install(IDictionary stateSaver)
at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
at System.Configuration.Install.AssemblyInstaller.Install(IDictionary savedSt
ate)
at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
at System.Configuration.Install.TransactedInstaller.Install(IDictionary saved
State)
und hier ist der Konstruktor:
public TweetLinkService()
{
InitializeComponent();
if (!EventLog.SourceExists("TweetLinkQueue"))
{
EventLog.CreateEventSource("TweetLinkQueue", "Log");
TweetLinksLog.Source = "TweetLinkQueue";
TweetLinksLog.Log = "Log";
TweetLinksLog.WriteEntry("Log Created!");
}
}
AKTUALISIERT mit Einsprungpunkt:
namespace TweetLinkQueue
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new TweetLinkService()
};
ServiceBase.Run(ServicesToRun);
}
}
}
Sie erhalten Sie weitere Informationen, wenn Sie installutil mit der/ShowCallStack Option laufen? – itowlson
Die Protokolldatei Info ist in der obigen Frage. –
Verfügt der Benutzer, mit dem Sie versuchen, den Dienst zu installieren, über Berechtigungen zum Schreiben in das Sicherheitsereignisprotokoll? – Oded