Проблема в том, что VS также пытается скомпилировать файлы RDLC, оставляя только файл маркера вместо исходного файла .rdlc. ReportViewer не может справиться с этим и выдает ошибку. Это отображается в журнале как:
Определение отчета недействительно. Подробности: данные на корневом уровне недействительны. Строка 1, позиция 1.
Решение - скопировать исходные файлы RDLC в развернутое приложение. Это можно автоматизировать на этапе после сборки. См. Также эту ветку для получения подробной информации об ошибке и эту публикацию для получения подробной информации о том, как редактировать шаг после сборки для проекта веб-развертывания. Я добавил в файл проекта Web Deployment следующее:
<ItemGroup>
<ReportFiles Include="$(SolutionDir)Path\To\Reports\*.rdlc" />
</ItemGroup>
<Target Name="AfterBuild">
<Copy SourceFiles="@(ReportFiles)" DestinationFolder=".\Release\Reports\" />
</Target>