2013-05-03 22 views
6

Otrzymujemy niepoprawny błąd w naszym środowisku testowym z sekcją konfiguracji niestandardowej."Wystąpił błąd podczas tworzenia sekcji obsługi sekcji konfiguracji dla" -

Jest to usługa systemu Windows uruchomiona na 64-bitowym serwerze Enterprise Server 2008 r2 z programem SQL Server 2008 w środowiskach programistycznych i testowych.

Sekcja ta konfiguruje naszą wspólną bibliotekę kodu do wysyłania wiadomości e-mail z zainteresowanym stronom, gdy błąd jest obsługiwane i opublikowane z kodem tak:

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

specyfiki błędach (pełne szczegółów - imiona zmienione w celu zachowania niewinnych)

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) 

sekcji plik konfiguracji, o którym mowa (z numerem linii)

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> 

Ta sama konfiguracja działa dobrze w naszym środowisku DEV. Są to środowiska identyczne, zgodnie z moją najlepszą wiedzą, a obie usługi działają pod tą samą bazą kodu.

Jakieś pomysły dotyczące niepowodzenia uprawnień? Jedną z rzeczy, nad którą pracujemy, jest tworzenie niestandardowego dziennika, ale nawet po usunięciu domyślnego wydawcy, który próbuje zapisać w niestandardowym dzienniku, który nie istnieje, proces nadal kończy się niepowodzeniem.

+1

Czy można utworzyć krótki, ale kompletny program, który demonstruje problem (jeśli tylko w środowisku testowym)? –

+0

Masz na myśli, że chcesz zobaczyć kod, który uruchamia awarię? –

+1

Mam na myśli dokładnie to, co mówię - chciałbym krótki, ale kompletny przykład, że możemy zobaczyć każdą część, która zawodzi w ten sam sposób w twoim systemie testowym. W ten sposób możemy zobaczyć wszystko, co * może * być przyczyną. –

Odpowiedz

4

Okazało się, że był to mało znany problem z instalacją.

Usunęliśmy tę usługę ze starego exe i zainstalowaliśmy ją ponownie w systemie 64-bitowym 4.0, a problem zniknął.

0

Jego ustawienie ramy w konfiguracji kompilacji

0

niezwiązanych bezpośrednio do scenariusza, ale jeśli masz ten sam wyjątek podczas gdy próby uruchomienia aplikacji .NET 4.0 z udziału sieciowego, a następnie trzeba zainstalować ten poprawka: http://support.microsoft.com/kb/2580188

Powiązane problemy