1

我正在为 SQL Server 集成服务编写自定义组件 (DLL),并且在尝试调试该组件时收到以下错误:

System.Data.dll 中出现“System.ExecutionEngineException”类型的未处理异常

当我在不调试的情况下运行组件时,我没有收到此错误,调试时引发此错误的代码是此代码的第二行:

DataTable table;
table = new DataTable();

我试过运行这个: http ://www.microsoft.com/en-au/download/details.aspx?id=30135 但我仍然得到错误。

我还使用以下代码创建了一个简单的 windows 窗体项目:

       DataTable table;
       table = new DataTable();
       table.Columns.Add("Dosage", typeof(int));
       table.Columns.Add("Drug", typeof(string));
       table.Columns.Add("Patient", typeof(string));
       table.Columns.Add("Date", typeof(DateTime));

        table.Rows.Add(25, "Indocin", "David", DateTime.Now);
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
        table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
        table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

而且我在调试时没有遇到错误。有谁知道我为什么会收到此错误以及如何调试我的代码?

4

3 回答 3

2

通常这是由编译 64 位程序集并尝试从 32 位进程中使用它引起的,反之亦然。

于 2013-10-18T23:18:49.287 回答
1

如果选中,似乎调试->常规选项“使用托管兼容模式”可能会导致此错误。它使用较旧的调试引擎,并且该调试引擎显然不能很好地处理 System.Data.dll 中的内容。

于 2019-02-06T23:54:31.530 回答
1

我遇到的这个问题与 Cooper Cripps 所说的完全相同,当我在 x64 模式下调试应用程序时发生了这个问题,当我到达 conn.Open() 时会抛出该错误。

using(var conn = new SqlConnection(connString)){ conn.Open(); }

但如果我没有附加调试器(使用 Ctrl+F5 运行),它仍然有效。最后,通过使用以下重置 userSettings 解决了这个问题:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv" -resetsettings 常规

于 2018-12-28T18:53:50.253 回答