web-dev-qa-db-ja.com

ファイルまたはアセンブリ '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をインストールする必要があるのはなぜですか?

29
SVI

Microsoft SQL Server 2008機能パック

簡単な説明:

SQL Server 2008に追加の値を提供するスタンドアロンインストールパッケージのコレクションであるMicrosoft SQL Server 2008 Feature Packをダウンロードしてください。特にCLRデータタイプ。

注:2013年1月に更新されたフィーチャーパックリンク

15
Dave Swersky

レポートビューアにはこのクラスが必要です

Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.ProcessingObjectModel.dll
Microsoft.ReportViewer.WebForms.dll
Microsoft.ReportViewer.WinForms.dll
Microsoft.ReportViewer.DataVisualization.dll
Microsoft.SqlServer.Types.dll
16
user3078724

最善の解決策は、Microsoft.SqlServer.Types NuGetパッケージをインストールすることです。

PM> Install-Package Microsoft.SqlServer.Types

そして、そのreadme.htmからの指示に従ってください

7
Ben Novoselsky

@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

元のリンクを使用すると、パッケージが個別であるというテキストファイルが取得されます

7
MoneyFish

エラーが表示されたときに[続行]ボタンを押すだけで、このエラーを無視できました。インストールが完了すると、2008 R2サーバーの操作に影響を与えるようには見えませんでした。 Windows 7 64ビットを実行しています。

1
Jason D

このフォーラムの投稿をご覧ください: 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」を検索するだけで表示されます。これまでのところ最も簡単な方法です。

0
Michael Onubogu