如何在连接到自定义 ADO.NET 提供程序时诊断 DataSource.Error?
How to diagnose DataSource.Error when connecting to a custom ADO.NET provider?
我一直在研究自己的 ADO.NET 实现。它在 Visual Studio 等方面运行良好。但现在我想在 Power BI Desktop 中使用它。
我已经在 machine.config 中注册了提供程序(两个平台)并将所有相关程序集复制到 GAC 中。现在我终于能够绕过 Power BI 给我的前几条错误消息,但现在我被困在了这条消息上:
DataSource.Error: An error happened while reading data from the provider: 'Value cannot be null.
Parameter name: values'
Details:
DataSourceKind=AdoDotNet
DataSourcePath=MyOwnProvider/param1=Something
在我看来,这是一条标准的 .NET 错误消息,所以如果我知道哪里出了问题,那将很容易解决。不幸的是,我还没有找到诊断问题的方法。我尝试使用 Visual Studio 调试 Power BI(似乎已成功加载我的程序集)。我曾尝试使用 DebugView 和 ProcMon 来查看会发生什么,但都没有给我任何有用的信息。
如何诊断到底出了什么问题?如何获取详细的日志、调用堆栈或其他内容?
从我的问题旁边的 question on the Power BI forum I posted 中,我得到了非常有用的答案。我也有一些个人的观察想分享一下。
首先来自论坛Lydia:
... you can go to File -> Options and settings -> Options -> Diagnostics and click "enable tracing", then connect to your data source and check the detailed logs in the traces folder
这非常有用,因为 Power BI 使用单独的进程来启动数据获取。这些进程 Microsoft.Mashup.Container.NetFX40.exe
和 Microsoft.Mashup.Container.NetFX45.exe
实际上连接到 ADO.NET 数据源。如果您有提供者 运行,您也可以附加到他们以跟踪执行情况。
我发现另一件有用的事情是使用一个单独的文件来写入跟踪。我使用了一个事件处理程序 AppDomain.UnhandledException
来写入一个跟踪文件。这也给了我 Power BI 代码中的一些错误,这对诊断我自己的提供商以外的问题非常有帮助。
我一直在研究自己的 ADO.NET 实现。它在 Visual Studio 等方面运行良好。但现在我想在 Power BI Desktop 中使用它。
我已经在 machine.config 中注册了提供程序(两个平台)并将所有相关程序集复制到 GAC 中。现在我终于能够绕过 Power BI 给我的前几条错误消息,但现在我被困在了这条消息上:
DataSource.Error: An error happened while reading data from the provider: 'Value cannot be null.
Parameter name: values'
Details: DataSourceKind=AdoDotNet DataSourcePath=MyOwnProvider/param1=Something
在我看来,这是一条标准的 .NET 错误消息,所以如果我知道哪里出了问题,那将很容易解决。不幸的是,我还没有找到诊断问题的方法。我尝试使用 Visual Studio 调试 Power BI(似乎已成功加载我的程序集)。我曾尝试使用 DebugView 和 ProcMon 来查看会发生什么,但都没有给我任何有用的信息。
如何诊断到底出了什么问题?如何获取详细的日志、调用堆栈或其他内容?
从我的问题旁边的 question on the Power BI forum I posted 中,我得到了非常有用的答案。我也有一些个人的观察想分享一下。
首先来自论坛Lydia:
... you can go to File -> Options and settings -> Options -> Diagnostics and click "enable tracing", then connect to your data source and check the detailed logs in the traces folder
这非常有用,因为 Power BI 使用单独的进程来启动数据获取。这些进程 Microsoft.Mashup.Container.NetFX40.exe
和 Microsoft.Mashup.Container.NetFX45.exe
实际上连接到 ADO.NET 数据源。如果您有提供者 运行,您也可以附加到他们以跟踪执行情况。
我发现另一件有用的事情是使用一个单独的文件来写入跟踪。我使用了一个事件处理程序 AppDomain.UnhandledException
来写入一个跟踪文件。这也给了我 Power BI 代码中的一些错误,这对诊断我自己的提供商以外的问题非常有帮助。