我有一个我们在生产中部署的Web应用程序。 我们为WEB和数据库提供单独的服务器。数据库是SQL Server 2008,它托管在完全不同的服务器上,我们将IIS安装在不同的服务器上。
在我的网络服务器上,我们收到以下错误消息。 无法加载文件或程序集'Microsoft.SqlServer.Types,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一
我在Web服务器上检查了GAC,但它缺少这个特定的DLL。这对我来说很有意义,因为它是一个Web服务器,它不应该有与SQLServer相关的程序集。
我们的应用程序在我们的开发,测试和登台环境中运行良好,因为我们的IIS和DB安装在同一台服务器上。
如何解决生产中的此问题?我可以通过在Web服务器上安装SQL Server 2008。但这对我来说没有意义。它是一个Web服务器 - 为什么我应该在该机器上安装SQL Server 2008?
答案 0 :(得分:16)
报告查看器需要此类
Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.ProcessingObjectModel.dll
Microsoft.ReportViewer.WebForms.dll
Microsoft.ReportViewer.WinForms.dll
Microsoft.ReportViewer.DataVisualization.dll
Microsoft.SqlServer.Types.dll
答案 1 :(得分:15)
Microsoft SQL Server 2008 Feature Pack
简要说明:
下载Microsoft SQL Server 2008 Feature Pack,这是一组独立安装包,为SQL Server 2008提供附加值。特别是CLR数据类型。
注意:2013年1月更新了功能包链接
答案 2 :(得分:7)
最好的解决方案是安装Microsoft.SqlServer.Types NuGet包。
PM> Install-Package Microsoft.SqlServer.Types
按照readme.htm
的说明操作答案 3 :(得分:7)
正如@Dave Swersky所说需要Microsoft SQL Server 2008功能包
但链接已更改为:
SQLServer®2008R2的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
使用原始链接将获得一个文本文件,说明包已经分开
答案 4 :(得分:1)
只需按下"继续"我就可以忽略此错误。出现错误时按钮。安装完成后,它似乎没有影响2008 R2服务器的运行。我正在运行Windows 7 64位。
答案 5 :(得分:0)
第一反应。您实际上可以下载可再发行的报表查看器运行时.dll并将其添加到项目中,以便将它们部署到没有这些文件的计算机上。
实际下载VS 2012运行时的链接:http://www.microsoft.com/EN-US/download/confirmation.aspx?id=35747
PS你也可以通过NuGet下载它们(这就是我所做的。)只需搜索“MICROSOFT®REPORTVIEWER 2012 RUNTIME”它们应该出现 - 迄今为止最简单的方式
答案 6 :(得分:-3)
对我来说关闭应用程序并重新打开它解决问题