我正在构建一个asp.net C#应用程序,它使用按钮在View中检索和显示RDLC报告。报告在localhost上加载时没有问题,但是当放在Windows Server 2012 R2 Standard 64位上并通过IIS 8.5版提供时,错误:
[A] Microsoft.Reporting.WebForms.ReportHierarchy无法转换为[B] Microsoft.Reporting.WebForms.ReportHierarchy。类型A源自'Microsoft.ReportViewer.WebForms,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91',位于'默认'位置'C:\ Windows \ assembly \ GAC_MSIL \ Microsoft.ReportViewer.WebForms \ 12.0 .0.0__89845dcd8080cc91 \ Microsoft.ReportViewer.WebForms.dll”。类型B源自'Microsoft.ReportViewer.WebForms,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91',位于'默认'位置'C:\ Windows \ assembly \ GAC_MSIL \ Microsoft.ReportViewer.WebForms \ 11.0 .0.0__89845dcd8080cc91 \ Microsoft.ReportViewer.WebForms.dll”。
报告加载时给出。这样可以防止在报告中加载嵌入的jpg图像。
我正在使用Microsoft.ReportViewer.WebForms,Version = 12.0.0.0,而没有引用web.config,.csproj或default.aspx中的版本11。 我控制了msdn.microsoft.com,stackoverflow,google和youtube ......无济于事。
可能导致此错误的原因是什么?是否有解决方法?
答案 0 :(得分:0)
检查部署计算机上的GAC(或路径中的其他位置)。可能有另一个版本的dll隐藏在服务器上。事实上,重新阅读您的错误,我在错误中看到了GAC的路径,因此 正在发生的事情。
我建议您在引用dll的项目中将“特定版本”设置为true,以确保在本地和远程计算机上使用相同的版本