"Es ist ein Fehler aufgetreten erstellen des konfigurationsabschnittshandlers für" -

Bekommen wir eine ungerade Fehler in unserer Testumgebung mit einer kundenspezifischen Konfiguration Abschnitt.

Dies ist für einen Windows-Dienst, der auf einem Enterprise-Server 2008 r2 64-bit mit SQL-Server 2008 in der dev-und test-Umgebungen.

In diesem Abschnitt konfiguriert unserer gemeinsamen code-Bibliothek zum senden von E-Mail aus, um Interessenten immer, wenn ein Fehler behandelt und veröffentlicht mit code wie diesem:

catch(Exception ex)
{
    ExceptionManager.Publish(ex);
}

Den Fehler Besonderheiten (volle detail - name geändert zu bewahren, die unschuldig)

4   <configSections>
5       <section name="exceptionManagement"
6                type="Company.Shared.ExceptionManagement.ExceptionManagerSectionHandler, Company.Shared" />
7   </configSections>
8   <exceptionManagement>
9       <publisher assembly="Company.Shared" type="Company.Shared.ExceptionManagement.DefaultPublisher"
10                 logName="CPODSOracleDataExchange" applicationName="CPODSOracleDataExchange Service" />
11      <publisher assembly="Company.Shared" type="Company.Shared.ExceptionManagement.ExceptionManagerSMTPPublisher"
12                 from="[email protected]"
13                 defaultRecipients="[email protected],[email protected]"
14                 applicationName="CPODSOracleDataExchange Service" />
15  </exceptionManagement>


1) Exception Information
*********************************************
Exception Type: System.Configuration.ConfigurationErrorsException
Message: An error occurred creating the configuration section handler for exceptionManagement: Request failed. (E:\CITApps\Services\CPODS.OracleDataExchangeService\Company.CPODS.OracleDataExchangeService.exe.Config line 5)
BareMessage: An error occurred creating the configuration section handler for exceptionManagement: Request failed.
Filename: E:\CITApps\Services\CPODS.OracleDataExchangeService\Company.CPODS.OracleDataExchangeService.exe.Config
Line: 5
Errors: System.Configuration.ConfigurationException[]
Data: System.Collections.ListDictionaryInternal
TargetSite: System.Configuration.FactoryRecord FindAndEnsureFactoryRecord(System.String, Boolean ByRef)
HelpLink: NULL
Source: System.Configuration

StackTrace Information
*********************************************
   at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at Company.Shared.ExceptionManagement.ExceptionManager.Publish(Exception exception, NameValueCollection additionalInfo)

2) Exception Information
*********************************************
Exception Type: System.Security.SecurityException
Action: Demand
PermissionType: System.Security.PermissionSet
FirstPermissionThatFailed: NULL
PermissionState: <PermissionSet class="System.Security.PermissionSet"
version="1"
Unrestricted="true"/>

Demanded: <PermissionSet class="System.Security.PermissionSet"
version="1"
Unrestricted="true"/>

GrantedSet: 
RefusedSet: 
DenySetInstance: NULL
PermitOnlySetInstance: <PermissionSet class="System.Security.PermissionSet"
version="1">
<IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Access="Open"/>
<IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Allowed="ApplicationIsolationByUser"
UserQuota="1024000"/>
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Flags="Execution"/>
<IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Window="SafeTopLevelWindows"
Clipboard="OwnClipboard"/>
<IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
version="1"
Level="SafePrinting"/>
<IPermission class="System.Security.Permissions.MediaPermission, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
version="1"
Audio="SafeAudio"
Video="SafeVideo"
Image="SafeImage"/>
<IPermission class="System.Security.Permissions.WebBrowserPermission, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
version="1"
Level="Safe"/>
</PermissionSet>

FailedAssemblyInfo: NULL
Method: Void InitWithRestrictedPermissions(System.Configuration.RuntimeConfigurationRecord, System.Configuration.FactoryRecord)
Zone: NoZone
Url: 
Message: Request failed.
Data: System.Collections.ListDictionaryInternal
TargetSite: System.Object CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef)
HelpLink: NULL
Source: mscorlib

StackTrace Information
*********************************************
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Configuration.TypeUtil.CreateInstanceWithReflectionPermission(Type type)
   at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.Init(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
   at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.InitWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
   at System.Configuration.RuntimeConfigurationRecord.CreateSectionFactory(FactoryRecord factoryRecord)
   at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)

Der Konfigurationsdatei Abschnitt in Frage (mit Zeilennummern):

4   <configSections>
5       <section name="exceptionManagement"
6                type="Company.Shared.ExceptionManagement.ExceptionManagerSectionHandler, Company.Shared" />
7   </configSections>
8   <exceptionManagement>
9       <publisher assembly="Company.Shared" type="Company.Shared.ExceptionManagement.DefaultPublisher"
10                 logName="CPODSOracleDataExchange" applicationName="CPODSOracleDataExchange Service" />
11      <publisher assembly="Company.Shared" type="Company.Shared.ExceptionManagement.ExceptionManagerSMTPPublisher"
12                 from="[email protected]"
13                 defaultRecipients="[email protected],[email protected]"
14                 applicationName="CPODSOracleDataExchange Service" />
15  </exceptionManagement>

Diese genau die gleiche Konfiguration funktioniert gut in unserer DEV-Umgebung. Diese sind identisch Umgebungen zu den besten meines Wissens, und beide Dienste sind unter der gleichen code-Basis.

Alle Ideen, was die Berechtigungen Fehler ist? Eine Sache, die wir arbeiten, zu tun ist, erstellen Sie das benutzerdefinierte Protokoll aber selbst wenn wir entfernen die Standard-publisher, der versucht zu schreiben, um ein benutzerdefiniertes Protokoll, das gar nicht existiert, ist der Vorgang weiterhin fehlschlägt.

  • Können Sie erstellen, die eine kurze, aber vollständige Programm, welches das problem veranschaulicht (wenn auch nur in der test-Umgebung)?
  • Sie meinen, Sie wollen, um zu sehen, den code, der die Auslösung der Fehler?
  • Ich meine genau das, was ich sage - ich möchte gerne ein kurzes, aber vollständiges Beispiel, das wir sehen können, jedes Teil, was nicht in der gleichen Weise auf Ihrem test-system. Auf diese Weise können wir sehen alles, was verursachen könnte es.
  • Sie läuft unter dem gleichen Benutzer-accounts in Ihrem DEV-und Produktions-Umgebungen? Seine sehr schwer zu sagen, was kann hier passiert, aber es scheint, Sie werden immer eine Sicherheits-Ausnahme, wenn Sie versuchen, zu erstellen Ihre handler. Ich kann nicht sagen, was dein code versucht access, die dies verursacht. Meine beste Vermutung, ohne zu wissen, mehr ist ein berechtigungsfehler.
  • Ok, ich verstehe die Anfrage. Da die Anzahl von gemeinsam genutzten Komponenten verwenden wir in unserer Umwelt, was Sie für Fragen wäre etwas zu lange zu reproduzieren hier, und ich würde verbringen eine Menge Zeit versuchen, um unsere DBAs installieren Sie eine test-Kopie entwickelt, nur um zu scheitern. Jetzt denke ich dies ist gebunden an die individuellen log-in Frage nicht in vorhandenen und der service nicht erstellen Sie es. Unsere DBAs erstellen Sie das benutzerdefinierte Protokoll ein wenig später an diesem morgen, und ich hoffe, dass löst das Problem.
Schreibe einen Kommentar