Windows服務ServicesDependedOn的奇怪問題???
代碼如下
public partial class WinServicePWServiceInstaller : Installer
{
private ServiceProcessInstaller process;
private ServiceInstaller service;
private const string m_SERVICENAME = "myService";
public WinServicePWServiceInstaller()
{
InitializeComponent();
process = new ServiceProcessInstaller();
process.Account = ServiceAccount.LocalSystem;
service = new ServiceInstaller();
service.ServiceName =m_SERVICENAME;
service.StartType = ServiceStartMode.Automatic;
service.ServicesDependedOn = GetDepengOnServices();
Installers.Add(process);
Installers.Add(service);
}
/// <summary>
///擷取設定檔的依賴服務
/// </summary>
/// <returns></returns>
private string[] GetDepengOnServices()
{
string[] services=null;
string allService = ConfigurationManager.AppSettings["DependOnService"];
services = new string[] { allService };
//return services;
if (allService.IndexOf(';') != -1)
{
services = allService.Split(';');
}
else
{
services =new string[]{ allService};
}
return services;
}
}
按以上方法寫的 GetDepengOnServices(),在安裝過程中報錯。
改成一下方法不會報錯
/// <summary>
///擷取設定檔的依賴服務
/// </summary>
/// <returns></returns>
private string[] GetDepengOnServices()
{
string[] services=null;
string allService = ConfigurationManager.AppSettings["DependOnService"];
services = new string[] { allService };
return services;
//if (allService.IndexOf(';') != -1)
//{
// services = allService.Split(';');
//}
//else
//{
// services =new string[]{ allService};
//}
//return services;
}
所讀的配置節 <!--本服務依賴的服務列表-->
<add key ="DependOnService" value ="MSSQLSERVER"/>
跟蹤後,兩種寫法都能得出正確的結果,為什麼 第一種寫法在安裝過程中會報錯????