gpt4 book ai didi

c# - 来自 OdbcConnection.Open() 的奇怪异常

转载 作者:行者123 更新时间:2023-11-30 22:49:53 26 4
gpt4 key购买 nike

在这里用头撞墙

我们是独立软件开发商,有数百家公司在使用我们的软件,没有任何问题。该软件是 .NET 2.0 上的 Winforms/C#。

我们的一位客户安装了我们的软件,但在他们所有的机器上启动时都崩溃了,除了在一个人的笔记本电脑上运行良好。

在调用 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 的修复没有解决这个问题。我完全不知所措了。有什么想法吗?

最佳答案

检查 machine.config 和 user.config。与 app.config 一起,这些是 3 that make up the config sections .

Reflector 显示 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;
}

因为第二个只会处理 non-CLS exception ,我猜你是第一个。如果是这种情况,您可能需要递归地检查 InnerException 以获得完整的详细信息。

关于c# - 来自 OdbcConnection.Open() 的奇怪异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com