2013-03-06 2 views
-1

, когда я пытаюсь установить мой C# окно сервиса это то, что я получаю, я новичок в приложениях выигрыша обслуживания, пожалуйста, укажите, если вам нужна дополнительная информация, много appritiated:Ошибки при попытке установить C# Windows Service

Installing assembly 'C:\BatchFileManagerWinService\PCSBatchFileManagerWinService.exe'. 
Affected parameters are: 
    logtoconsole = 
    assemblypath = C:\BatchFileManagerWinService\PCSBatchFileManagerWinService.exe 
    logfile = C:\BatchFileManagerWinService\PCSBatchFileManagerWinService.InstallLog 
Installing service PCS Batch File Manager... 
Service PCS Batch File Manager has been successfully installed. 
Creating EventLog source PCS Batch File Manager in log Application... 
An exception occurred in the OnAfterInstall event handler of PCSBatchFileManagerWinService.ProjectInstaller. 
System.InvalidOperationException: Cannot start service PCS Batch File Manager on computer '.'. 
The inner exception System.ComponentModel.Win32Exception was thrown with the following error message: 
The service did not respond to the start or control request in a timely fashion. 
Rolling back assembly 'C:\BatchFileManagerWinService\PCSBatchFileManagerWinService.exe'. 
Affected parameters are: 
    logtoconsole = 
    assemblypath = C:\BatchFileManagerWinService\PCSBatchFileManagerWinService.exe 
    logfile = C:\BatchFileManagerWinService\PCSBatchFileManagerWinService.InstallLog 
Restoring event log to previous state for source PCS Batch File Manager. 
Service PCS Batch File Manager is being removed from the system... 
Service PCS Batch File Manager was successfully removed from the system. 

код ProjectInstaller, как показано ниже:

[RunInstaller(true)] 
public partial class ProjectInstaller : System.Configuration.Install.Installer 
{ 
    public ProjectInstaller() 
    { 
     InitializeComponent(); 

     //Read domain/Username and password 
     XmlDocument doc = new XmlDocument(); 
     doc.Load(System.Reflection.Assembly.GetExecutingAssembly().Location + ".config"); 
     XmlElement appSettings = (XmlElement)doc.DocumentElement.GetElementsByTagName("appSettings")[0]; 
     string username = null; 
     string password = null; 
     foreach (XmlElement setting in appSettings.GetElementsByTagName("add")) 
     { 
      string key = setting.GetAttribute("key"); 
      if (key == "WinServInstallUserName") username = setting.GetAttribute("value"); 
      if (key == "WinServInstallPassword") password = setting.GetAttribute("value"); 
     } 
     serviceProcessInstaller1.Account = ServiceAccount.User; 
     serviceProcessInstaller1.Username = username; 
     serviceProcessInstaller1.Password = password; 

     // Start Service 
     this.AfterInstall += new InstallEventHandler(ProjectInstaller_AfterInstall); 
    } 

    void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e) 
    { 
     ServiceController sc = new ServiceController("PCS Batch File Manager"); 
     sc.Start(); 
    } 
} 
+1

Службы Windows имеют ограниченное время для запуска (не помню, если это настраивается или нет). Есть ли какая-либо инициализация в вашем сервисе, которая может вызывать ненормально долгое или зависание? – Tim

+0

Отправьте код вашего обслуживания, он не может завершить OnStart – istepaniuk

ответ

1

В Program.cs файле вашего проекта сервиса, добавьте

Debugger.Launch(); 

в качестве первой линии в

private static void Main(string[] args) 

При запуске службы, он спросит вас, как вы хотите отлаживать, выбрать ссылку Visual Studio у вас открыто. Тогда вы можете лучше понять, что вызывает проблему.

Кроме того, не забудьте принять это заявление, когда вы закончите!

+0

Спасибо за помощь! отлажено. Culprit был запущен с помощью службы log4net. Я комментировал код // [сборка: log4net.Config.XmlConfigurator (ConfigFile = "log4net.config", Watch = true)] в AssemblyInfo.cs и служба запускается. Я удалю код log4net и напишу собственный код регистрации ошибок. – Gaurav

Смежные вопросы