我有一个我们在生产中部署的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?

有帮助吗?

解决方案

Microsoft SQL Server 2008 Feature Pack

简要说明:

下载Microsoft SQL Server 2008 Feature Pack,这是一组独立安装包,为SQL Server 2008提供附加值。特别是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®2008R2的Microsoft®系统CLR类型:

X86软件包(SQLSysClrTypes.msi): http://go.microsoft.com / fwlink /链路ID = 188391&安培; CLCID = 0x409 X64包(SQLSysClrTypes.msi): http://go.microsoft.com/fwlink/ ?链路ID = 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®报告查看2012 RUNTIME“它们应该出现 - 迄今为止最简单的方法

对我来说关闭应用程序并重新打开它解决问题

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top