2016-11-02 3 views
0

Я работаю над собственной реализацией ADO.NET. Он отлично работает с Visual Studio и т. Д., Но теперь я хочу использовать его в Power BI Desktop.Как диагностировать DataSource.Error при подключении к пользовательскому поставщику ADO.NET?

Я уже зарегистрировал поставщика в machine.config (обе платформы) и скопировал все соответствующие сборки в GAC. Теперь я, наконец, смог обойти первых сообщений об ошибках мало мощности 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, чтобы узнать, что происходит, но все это не помогло мне.

Как диагностировать, что на самом деле пошло не так? Как получить подробный журнал, стек вызовов или что-то еще?

+0

(Яркая копия моего вопроса на [форуме PowerBI здесь] (http://community.powerbi.com/t5/Integrations-with-Files-and/DataSource-Error-when-connecting-to-ADO-NET -provider/td-p/85040)) –

+0

Сколько у вас методов, которые принимают параметр под названием 'values'? – rene

+0

Нет ... Это, наверное, один из внутренних методов ADO.NET. @rene –

ответ

0

От 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

Это было очень полезно, так как мощность BI использует отдельный процесс, чтобы пнуть выборку данных. Эти процессы, Microsoft.Mashup.Container.NetFX40.exe и Microsoft.Mashup.Container.NetFX45.exe действительно делают подключение к источникам данных ADO.NET. Если у вас запущен ваш провайдер, вы можете также подключиться к ним для отслеживания выполнения.

Еще одна вещь, которую я нашел полезной, - это использовать отдельный файл для записи трассировки. Я использовал обработчик событий для AppDomain.UnhandledException для записи в файл трассировки. Это также дало мне некоторые ошибки в коде Power BI, что было очень полезно для диагностики того, что пошло не так, как за пределами моего собственного провайдера.