将头撞在墙上
我们是ISV,有数百家公司使用我们的软件没有任何问题。该软件是.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()
谷歌只是说“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并没有解决这个问题。我完全失去了。有什么想法吗?
答案 0 :(得分:3)
检查machine.config和user.config。与app.config一起,这些是3 that make up the config sections。
反射器显示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来获取完整的详细信息。
答案 1 :(得分:0)
只是对于任何人未来的参考,我在我的桌面上开发的本地应用程序遇到了这个问题,发现问题只是因为我遇到了错误的情况。一旦修复它再次像魅力一样。
答案 2 :(得分:0)
通过使用来自同一SP /补丁级别的另一台计算机的已知工作副本覆盖machine.config来解决此问题。
答案 3 :(得分:0)
尝试使用ASP / VB.NET 3.5 SP1打开OLE DB连接时,发生了同样的错误。如果我将我的URL添加到IE中的可信站点列表,则错误消失并且连接成功打开。我不知道这是否会解决其他浏览器中的问题。