Не удалось загрузить файл или сборку «Microsoft.SqlServer.Types».

У меня есть веб-приложение, которое мы развернули в рабочей среде. У нас есть отдельные серверы для WEB и базы данных. БД - это SQL Server 2008, и она размещена на совершенно другом сервере, и наш IIS установлен на другом сервере.

На моем веб-сервере мы получаем следующую ошибку. Не удалось загрузить файл или сборку «Microsoft.SqlServer.Types, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91» или одна из ее зависимостей

Я проверил GAC на веб-сервере, и в нем отсутствовала эта конкретная DLL. Для меня это имеет смысл, поскольку это веб-сервер, и он не должен иметь сборок, связанных с SQLServer.

Наше приложение отлично работало в нашей среде разработки, тестирования и подготовки, поскольку наши IIS и БД были установлены на одном сервере.

Как мне обойти эту проблему на производстве? Я могу, установив SQL Server 2008 на веб-сервере. Но это не имеет смысла для меня. Это веб-сервер — зачем мне устанавливать SQL Server 2008 на эту машину?


person SVI    schedule 26.10.2009    source источник
comment
SVI — у вас есть зависимости от типов SQL в вашем приложении, поэтому вы должны иметь эти сборки на любом компьютере, на который вы устанавливаете свое приложение. Вот почему вы должны установить эти биты SQL на свой веб-сервер. Пакет компонентов предоставляется для того, чтобы вы могли установить поддерживающие сборки SQL, не устанавливая полный сервер.   -  person Dave Swersky    schedule 26.10.2009
comment
Ага. Я получаю это сейчас. Спасибо за информацию и объяснение.   -  person SVI    schedule 27.10.2009


Ответы (7)


Пакет компонентов Microsoft SQL Server 2008

Краткое описание:

Загрузите пакет дополнительных компонентов Microsoft SQL Server 2008, набор автономных установочных пакетов, которые обеспечивают дополнительную ценность для SQL Server 2008. В частности, типы данных CLR.

Примечание. Ссылка на пакет функций обновлена, январь 2013 г.

person Dave Swersky    schedule 26.10.2009
comment
Дэйв, мне трудно понять, почему я должен устанавливать какие-либо компоненты, связанные с SQL SERVER, на моем веб-сервере. - person SVI; 26.10.2009
comment
Дэйв, я понимаю, откуда вы пришли. Вы имеете в виду, что я должен установить типы CLR системы Microsoft SQL Server ОПИСАНИЕ: Пакет типов CLR системы SQL Server содержит компоненты, реализующие новые типы геометрии, географии и иерархии в SQL Server 2008. Этот компонент можно установить отдельно от сервера, чтобы клиентские приложения могли использовать эти типы вне сервера. - person SVI; 26.10.2009
comment
Потому что вы хотите использовать пространственные типы SQL Server. - person Cornelius; 21.10.2011
comment
Это подтвердилось для нас, когда мы использовали AWS с Microsoft Windows Server 2012 R2 для подключения к SQL Server 2014 с использованием некоторых устаревших библиотек DLL, где конкретная версия типов CLR Microsoft SQL Server 2008 Feature Pack устанавливает 10.0.xx, который устраняет возникшую здесь ошибку. - person iowatiger08; 18.02.2016
comment
Я получаю эту ошибку на машине, на которой уже установлен SQL Server. Нужно ли устанавливать пакет компонентов, даже если SQL Server уже установлен? - person Christian Findlay; 22.12.2017
comment
@MelbourneDeveloper Пространственные типы могут быть не установлены по умолчанию, поэтому, возможно, вам придется установить их явно, даже если SQL Server уже установлен. - person Dave Swersky; 22.12.2017

средство просмотра отчетов нуждается в этом классе

Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.ProcessingObjectModel.dll
Microsoft.ReportViewer.WebForms.dll
Microsoft.ReportViewer.WinForms.dll
Microsoft.ReportViewer.DataVisualization.dll
Microsoft.SqlServer.Types.dll
person Community    schedule 07.12.2013
comment
Я использовал NuGet для установки Microsoft.SqlServer.Types. Это решило мою проблему. - person MickB; 18.07.2018

Лучшим решением будет установка NuGet-пакета Microsoft.SqlServer.Types.

PM> Install-Package Microsoft.SqlServer.Types

И следуйте инструкциям из файла readme.htm.

person Ben Novoselsky    schedule 24.02.2015
comment
дополнительно - после установки пакета nuget вы можете убедиться, что для свойства ссылки dll установлено значение «copy local = true» - person John M; 04.04.2016
comment
Nuget может установить самую новую версию, однако сервер может потребовать, чтобы клиент использовал более старую версию, поэтому это неправильный ответ. - person dexiang; 01.06.2019

Как сказал @Dave Swersky, требуется пакет компонентов Microsoft SQL Server 2008

Но ссылка изменена на:

Типы Microsoft® System CLR для SQL Server® 2008 R2:

Пакет X86 (SQLSysClrTypes.msi): http://go.microsoft.com/fwlink/?LinkID=188391&clcid=0x409 Пакет X64 (SQLSysClrTypes.msi): http://go.microsoft.com/fwlink/?LinkID=188392&clcid=0x409

Используйте исходную ссылку, чтобы получить текстовый файл, в котором говорится, что пакет был отдельным

person MoneyFish    schedule 01.03.2017

Я смог проигнорировать эту ошибку, просто нажав кнопку «Продолжить», когда ошибка появилась. После завершения установки это не повлияло на работу сервера 2008 R2. Я использую Windows 7 64 бит.

person Jason D    schedule 05.05.2014

См. это сообщение на форуме: 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», и они должны появиться — пока что это самый простой способ.

person Michael Onubogu    schedule 29.01.2015

Для меня Закройте приложение и снова откройте его, чтобы решить проблему

person Mohamed Kamal    schedule 14.10.2016