Ответ 1
Отвечая на мой собственный вопрос здесь, надеясь, что кто-то другой найдет это полезным:
Я был под (ложным) впечатлением, что уникального "DataSourceID", предоставленного источнику данных на сервере, было бы достаточно, чтобы однозначно идентифицировать его.
Итак, в моем созданном RDL у меня было что-то вроде:
<DataSources>
<DataSource Name="MyDataSource">
<Transaction>true</Transaction>
<DataSourceReference>MyDataSource</DataSourceReference>
<rd:DataSourceID>6ba7c588-e270-4de9-988c-d2af024f10e1</rd:DataSourceID>
<rd:SecurityType>None</rd:SecurityType>
</DataSource>
</DataSources>
Теперь это работало один раз, когда мой источник данных действительно назывался "MyDataSource" и находился в том же каталоге, что и мой отчет, который я опубликовал через API RS WebService.
Как только я переместил источник данных в другое место, он перестал работать.
РЕШЕНИЕ:
Это может показаться глупым, но на самом деле я не получил его сначала: DataSourceReference
должен иметь полный и полный "путь" на сервере отчетов к тому источнику данных, который я хочу использовать. Просто указать уникальный идентификатор не будет...
Итак, как только я изменил свой RDL на:
<DataSources>
<DataSource Name="MyDataSource">
<Transaction>true</Transaction>
<DataSourceReference>/MyProject/DataSources/MyDataSource</DataSourceReference>
<rd:DataSourceID>6ba7c588-e270-4de9-988c-d2af024f10e1</rd:DataSourceID>
<rd:SecurityType>None</rd:SecurityType>
</DataSource>
</DataSources>
(обратите внимание на <DataSourceReference>/MyProject/DataSources/MyDataSource</DataSourceReference>
)
с этого момента он работает как шарм.
Надеюсь, кто-нибудь однажды найдет это полезным!