2009-05-21 3 views
2

우리는 ISV하고 아무런 문제없이 우리의 소프트웨어를 사용하여 회사의 수백 여기이상한 예외는()

벽에 우리의 머리를 때리기. 이 소프트웨어는 .NET 2.0의 Winforms/C#입니다.

고객 중 한 명이 우리 소프트웨어를 설치했으며, 잘 작동하는 한 사람의 랩톱을 제외하고는 모든 컴퓨터에서 시작시 충돌이 발생합니다.

Configuration system failed to initialize 
    at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) 
    at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName) 
    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.Diagnostics.DiagnosticsConfiguration.GetConfigSection() 
구글은 단지 "의 app.config 구문이 올바르지 않습니다 말한다

이 그것을 다시 : 이것은의 InnerException있다

The type initializer for 'System.Transactions.Diagnostics.DiagnosticTrace' threw an exception. 
    at System.Transactions.Diagnostics.DiagnosticTrace.get_Verbose() 
    at System.Transactions.Transaction.get_Current() 
    at System.Data.Common.ADP.IsSysTxEqualSysEsTransaction() 
    at System.Data.Common.ADP.NeedManualEnlistment() 
    at System.Data.Odbc.OdbcConnection.Open() 
    at OurCompany.OurForm.connectionTestWorker_DoWork(Object sender) 

: OdbcConnection.Open는(), 우리는 다음과 같은 예외가 호출에

"그러나 동일한 app.config는 수백 대의 다른 컴퓨터에서 잘 작동합니다.

여기의 요청에 따라,의 app.config의 :

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
     <section name="OurApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <system.diagnostics> 
    </system.diagnostics> 
    <applicationSettings> 
    <OurApp.Properties.Settings> 
     <setting name="OurApp_WebServices_OurServiceName" serializeAs="String"> 
     <value>http://ourdomain.com/OurService.asmx</value> 
     </setting> 
    </OurApp.Properties.Settings> 
    </applicationSettings> 
    <appSettings> 
    <add key="WorkflowEngine" value="old" /> 
    <add key="ProductID" value="3" /> 
    <add key="EnableMigrationWizard" value="false" /> 
    <add key="UseAlternativeFtpPort" value="true" /> 
    <add key="FeedbackWhileConnecting" value="true" /> 
    </appSettings> 
</configuration> 

은 .NET Framework의 수리이 고정되지 않았습니다. 나는 완전히 손해를보고있다. 어떤 아이디어?

+1

검토를 위해 구성 파일을 제공 할 수 있습니까? –

답변

0

동일한 SP/패치 수준에서 다른 컴퓨터의 알려진 작업 복사본으로 machine.config를 덮어 써서 해결했습니다.

3

machine.config 및 user.config를 확인하십시오. app.config와 함께 3 that make up the config sections입니다. 반사판은 EnsureInit 보여줍니다

2 개 예외 경로가 : 2 만 non-CLS exception을 처리하는 것 때문에

catch (Exception exception) { 
    this._initError = new ConfigurationErrorsException(SR.GetString("Config_client_config_init_error"), exception); 
    throw this._initError; 
} catch { 
    this._initError = new ConfigurationErrorsException(SR.GetString("Config_client_config_init_error")); 
    throw this._initError; 
} 

를, 난 당신이 첫 번째 타격하고 있다는 추측에는 요. 이 경우 InnerException을 반복적으로 거쳐 전체 세부 정보를 가져와야합니다.

+0

흥미롭게도 지원 담당자는 .NET을 완전히 제거하고 다시 설치했으며 앱이 작동하기 시작했습니다. 아마도 그 machine.config 삭제하고 신선한 하나 복사. 논리적으로 말하자면, 자동화 된 프로세스가 machine.config에 .NET이 예외 (예를 들어 의도하지 않음)로 덮어 쓰는 경우,이 설치가 어느 시점에서 다시 작동하지 않을 것이라는 점, 타격입니다. 시간은 말할 것이다 ... – tomfanning

+0

아, 나는 InnerException의 다음 단계를 잡는 또 다른 빌드를 구운 적이있다. 가능하다면, 아침에 다른 머신에서 다시 가져 오는 것을 볼 것이다. – tomfanning

+1

@ id.tomfanning .eu - null이 될 때까지, 특히 원격 상황에서 각 InnerException을 가져옵니다. 얼마나 많은 레벨이 내려 갔는지는 알 수 없습니다. 그렇지 않으면, 당신은 단지 바닥 수준 오류를 얻기 위해 매일 빌드를 공개 할 것입니다. –

0

앞으로 참조 할 사람을 위해 필자는 내 데스크톱에서 개발중인 로컬 응용 프로그램에이 문제가있어 단순히 문제가 잘못되었다는 것을 발견했습니다. 일단 그것이 고쳐지면 다시 매력처럼 작동했습니다.

0

ASP/VB.NET 3.5 SP1을 사용하여 OLE DB 연결을 열려고 할 때이 똑같은 오류가 발생했습니다. IE의 신뢰할 수있는 사이트 목록에 내 URL을 추가하면 오류가 사라지고 연결이 성공적으로 열립니다. 다른 브라우저에서 문제가 해결 될지 모르겠습니다.

+1

뭐라구?클라이언트에서 설정을 변경하면 서버에서 예외가 발생하거나 발생하지 않습니다. – tomfanning

관련 문제