启动服务时出错(本地计算机上的服务,然后自动停止)

本文关键字:服务 然后 出错 计算机 启动 | 更新日期: 2023-09-27 18:36:08

我安装了一个Windows服务,它必须通过以下方法从App.Config文件中获取一些字符串 OnStart - ConfigurationManager.AppSettings["stringName"];
在 App.Config 中,我还为日志文件定义了用于写入日志文件的source

但是,当我成功安装我的服务并尝试从My Computer -> Manage - > Device Manager内部Serivce Control Explorer启动它时,我收到一条消息说

The service on the local computer and then stopped. Some services stop automatically if not used by toher applications

在Windows事件查看器中,我得到以下错误详细信息(也许在启动服务时抛出异常)

这是相同的错误详细信息:

Service cannot be started. System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section add. (C:'Program Files (x86)'Default Company Name'ServiceSetup'ServiceChecker.exe.Config line 3)
   at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
   --- End of inner exception stack trace ---
   at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
   at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Dia...

上述详细信息显示了与服务.exe.config文件相关的错误详细信息。我尝试卸载并重新安装该服务,并且服务的安装帐户设置为具有广泛系统先决条件的Local system

我在项目中的应用配置:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
<appSettings>
      <add key="UtilName" value="sample.exe"/>
      <add key="App1" value="MyApp"/>
      <add key="App1E" value="MyApp.exe"/>
      <add key="App2" value="MyApp2"/>
      <add key="App2E" value="MyApp2.exe" />
      <add key="AppDirectory" value="Company'MyProject" />
      <add key="CMDArgs" value="'start"/>
</appSettings>    
      <system.diagnostics>
        <sources>
          <source name="ServiceTrace" switchName="ServiceTraceSwitch" switchType="System.Diagnostics.SourceSwitch">
            <listeners>
              <add name="ServiceLog" type="System.Diagnostics.TextWriterTraceListener" initializeData="servicetrace.log"/>
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="ServiceTraceSwitch" value="Information" />
        </switches>
        <trace autoflush="true" indentsize="4"></trace>
      </system.diagnostics>
    </configuration>

启动服务时出错(本地计算机上的服务,然后自动停止)

似乎您的 app.config(或 .exe.config)包含无法识别的部分。错误消息通常说类似

无法识别的配置部分"部分名称"

所以我假设你只是添加了你的配置值,而没有所需的父元素。必须将该元素添加为节的子元素。确保它看起来像这样:

<configuration>
   <appSettings>
     <add key="MyKey" value="MyValue" />
   </appSettings>
   ...some more configuration...
</configuration>

根据错误,您的 .config 文件中存在语法错误:

Unrecognized configuration section add.

这表明您可能错过了配置文件中的外部部分。 应如下所示:

<section>
    <add ... >
</section>