0

次の方法で App.Config ファイルからいくつかの文字列をフェッチする必要がある Windows サービスをインストールしましたOnStart- ConfigurationManager.AppSettings["stringName"];
App.Config 内にはsource、ログ ファイルに書き込むために使用するログ ファイルも定義されています。

ただし、サービスを正常にインストールしてSerivce Control Explorer内部から開始しようとするとMy Computer -> Manage - > Device Manager、次のメッセージが表示されます

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幅広いシステム特権を持つものとして設定されています。

プロジェクトの私の App.Config:

    <?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>
4

2 に答える 2

3

Seems that your app.config (or .exe.config) contains an unrecognized section. The error message usually says something like

Unrecognized configuration section 'section name'

so i assume that you just added your config values without the needed parent element. The element has to be added as a child element of the section. Make sure it looks something like this:

<configuration>
   <appSettings>
     <add key="MyKey" value="MyValue" />
   </appSettings>
   ...some more configuration...
</configuration>
于 2012-06-04T09:59:07.557 に答える
0

You have a syntax error in your .config file, per the error:

Unrecognized configuration section add.

This indicates you probably missed an outer section in your config file. Should look like:

<section>
    <add ... >
</section>
于 2012-06-04T09:59:59.973 に答える