当我尝试安装我的 C# 窗口服务时,这就是我得到的,我是 win 服务应用程序的新手,如果您需要更多信息,请提及,非常感谢:
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();
}
}