Странное исключение, выходящее из OdbcConnection.Open () - PullRequest
2 голосов
/ 21 мая 2009

Бьемся здесь о стену

Мы - независимый поставщик программного обеспечения, и сотни компаний без проблем используют наше программное обеспечение. Программное обеспечение Winforms / C # на .NET 2.0.

Один из наших клиентов установил наше программное обеспечение, и оно аварийно завершает работу при запуске на всех своих машинах, за исключением ноутбука одного парня, где он работает нормально.

При вызове OdbcConnection.Open () мы получаем следующее исключение:

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)

Это InnerException:

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()

Google просто говорит: "app.config синтаксически неверен, перестройте его", но тот же 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 не исправило это. Я в полной растерянности. Есть идеи?

Ответы [ 4 ]

3 голосов
/ 21 мая 2009

Проверьте machine.config и user.config. Наряду с app.config это те 3, которые составляют секции конфигурации .

Отражатель показывает EnsureInit имеет 2 пути исключения:

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;
}

Поскольку 2-е будет обрабатывать только не-CLS исключение , я предполагаю, что вы выполняете первое. Если это так, вам, вероятно, нужно рекурсивно пройти через InnerException, чтобы получить полную информацию.

0 голосов
/ 23 января 2010

У меня была такая же ошибка при попытке открыть соединение OLE DB с ASP / VB.NET 3.5 SP1. Если я добавлю свой URL в список доверенных сайтов в IE, то ошибка исчезнет, ​​и соединение будет успешно установлено. Я не знаю, исправит ли это вещи в других браузерах.

0 голосов
/ 15 июня 2009

Решено, переписав machine.config с известной рабочей копией с другого компьютера с тем же уровнем SP / patch.

0 голосов
/ 15 июня 2009

Просто на всякий случай, у меня была эта проблема с локальным приложением, которое я разрабатывал на своем рабочем столе, и обнаружил, что проблема заключалась просто в том, что я ошибся в случае. Как только это было исправлено, оно снова заработало, как заклинание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...