ファイルまたはアセンブリ 'Microsoft.SqlServer.Typesを読み込めませんでした
プロダクションにデプロイしたWebアプリケーションがあります。 WEB用とデータベース用に別々のサーバーがあります。 DBはSQL Server 2008であり、完全に別のサーバーでホストされており、IISが別のサーバーにインストールされています。
私のWebサーバーで、次のエラーが発生します。ファイルまたはアセンブリ 'Microsoft.SqlServer.Types、Version = 10.0.0.0、Culture = neutral、PublicKeyToken = 89845dcd8080cc91'またはその依存関係の1つを読み込めませんでした
WebサーバーのGACを確認したところ、この特定のDLLがありませんでした。これはWebサーバーであり、SQLServerに関連するアセンブリを持つことは想定されていないため、これは私には理にかなっています。
IISとDBが同じサーバーにインストールされているため、アプリケーションは開発、テスト、ステージング環境でうまく機能しました。
プロダクションでこの問題を回避するにはどうすればよいですか? WebサーバーにSQL Server 2008をインストールすることでできます。しかし、これは私には意味がありません。それはWebサーバーです-そのマシンにSQL Server 2008をインストールする必要があるのはなぜですか?
Microsoft SQL Server 2008機能パック
簡単な説明:
SQL Server 2008に追加の値を提供するスタンドアロンインストールパッケージのコレクションであるMicrosoft SQL Server 2008 Feature Packをダウンロードしてください。特にCLRデータタイプ。
注:2013年1月に更新されたフィーチャーパックリンク
レポートビューアにはこのクラスが必要です
Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.ProcessingObjectModel.dll
Microsoft.ReportViewer.WebForms.dll
Microsoft.ReportViewer.WinForms.dll
Microsoft.ReportViewer.DataVisualization.dll
Microsoft.SqlServer.Types.dll
最善の解決策は、Microsoft.SqlServer.Types NuGetパッケージをインストールすることです。
PM> Install-Package Microsoft.SqlServer.Types
そして、そのreadme.htmからの指示に従ってください
@Dave Swerskyが言ったようにMicrosoft SQL Server 2008機能パックが必要です
ただし、リンクは次のように変更されました。
SQLServer®2008 R2のMicrosoft®システムCLRタイプ:
X86パッケージ(SQLSysClrTypes.msi): http://go.Microsoft.com/fwlink/?LinkID=188391&clcid=0x409 X64パッケージ(SQLSysClrTypes.msi): http:// go .Microsoft.com/fwlink /?LinkID = 188392&clcid = 0x409
元のリンクを使用すると、パッケージが個別であるというテキストファイルが取得されます
エラーが表示されたときに[続行]ボタンを押すだけで、このエラーを無視できました。インストールが完了すると、2008 R2サーバーの操作に影響を与えるようには見えませんでした。 Windows 7 64ビットを実行しています。
このフォーラムの投稿をご覧ください: https://social.technet.Microsoft.com/Forums/sharepoint/en-US/7e673dde-dfca-4b1a-a840-025a2ae9ee58/reportviewer-msi-is -missing-microsoftsqlservertypesdll?forum = sqlreportingservices 、
最初の応答。実際には、再配布可能なレポートビューアーのランタイム.dllをダウンロードしてプロジェクトに追加し、それらのファイルを持たないマシンにデプロイすることができます。
VS 2012のランタイムを実際にダウンロードするためのリンク: http://www.Microsoft.com/EN-US/download/confirmation.aspx?id=35747
PSまた、NuGetを介してダウンロードすることもできます(これは私が行ったことです)。「Microsoft®REPORT VIEWER 2012 RUNTIME」を検索するだけで表示されます。これまでのところ最も簡単な方法です。