実稼働サイトのレポート ビューアーで奇妙な問題が発生しています。サイトのステージ バージョンとデモ バージョンを同じマシンに展開しています。最近、私はアップデートに取り組んでおり、正常に動作するステージ バージョンに展開しています。今日、私はデモにデプロイしましたが、突然、デモでのみレポート ビューアーが壊れました。
私が得ているエラーは次のとおりです。
CS0433: The type 'Microsoft.Reporting.WebForms.ReportDataSource' exists in both
'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\10.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll'
and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\h2o-demo\d354e6e4\ac3ce3e\assembly\dl3\67b85cd6\0027fec0_ed32ca01\Microsoft.ReportViewer.WebForms.DLL'
プロジェクトは、この更新プログラムで Report Viewer 9 から 10 に更新されました。Web Config のすべての参照と、プロジェクトの「参照」が更新されました。「Temporary ASP.NET Files」に入れられるバージョンが、何らかの理由で実際にはバージョン 9 であることに気付きました。
もう一度要約します。プロジェクトは私のローカルマシンで正常に動作します。また、壊れたデモ サイトと同じサーバーに展開されているステージ サイトでも動作します。
これをトラブルシューティングするために私ができることについて誰か考えがありますか? 私にとって有効な解決策があるリソースが見つからないようです。コンパイル batch = false を試し、アセンブリ バインディング リダイレクトを 9 から 10 に追加しました (ただし、これは間違っていた可能性があります)。あるサイトでは機能するのに、他のサイトでは機能しない理由について、私は本当に混乱しています。
EDIT 1:もう少し見回した後、バインディングリダイレクトをもう一度試しました。私の設定ファイルは次のようになります。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.10.0" newVersion="1.2.10.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.ReportViewer.WebForms" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.ReportViewer.Common" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
「Log4Net」リダイレクトはすでに存在し、ステージ上にあるのはこれだけです。「WebForms」を追加した後、「Common」でエラーが発生したので、それも追加しました。今、私はこのエラーが発生しています:
Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The system cannot find the file specified.