我想在我的项目中创建一个服务安装程序,我的项目中有几个serviceBase类。这是主程序代码:
static class Program
{
static void Main()
{
string[] temp = ConfigurationUtils.ReadSetting("XServices").Split(',');
string serviceNamespace = ConfigurationUtils.ReadSetting("Services Namespace");
ServiceBase[] servicesToRun;// = new ServiceBase[temp.Length];
for (int i = 0; i < temp.Length;i++ )
{
Type typeService = Type.GetType(serviceNamespace + "." + temp[i]);
servicesToRun[i] = (ServiceBase) Activator.CreateInstance(typeService, true);
}
ServiceBase.Run(servicesToRun);
}
}
在这个程序中,我读了我想从app.config创建的类(可以是多个类)。然后我使用Reflection来创建服务(基于app.config)。 我使用app.config来使我想添加的服务可配置。
然后,我可以构建我的项目并安装该服务。但是,当我启动我的服务时,它无法加载我的服务类。 我认为这是因为我刚刚创建的类不能作为我的服务类。
这是我的app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log_directory_performancelog" value="C:\Wcms\Modules\XPerformance\Data\" />
<add key="log_directory_website_monitoring" value="C:\Wcms\Modules\XWebsiteMonitoring\Data\"/>
<add key="config_path_performance" value="C:\Program Files\Wcms\XLogClient\config.txt" />
<add key="config_path_website_monitoring" value="C:\Program Files\Wcms\XLogClient\website.monitor.config.txt" />
<add key="XServices" value="XLogClientPerformance,XLogClientWebsiteMonitoring" />
<add key="Services Namespace" value="XLog.Client" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
</configuration>