파일 또는 어셈블리 'Microsoft.sqlserver.types를로드 할 수 없습니다
-
06-07-2019 - |
문제
프로덕션에 배포 한 웹 응용 프로그램이 있습니다. 웹 및 데이터베이스에 대한 별도의 서버가 있습니다. DB는 SQL Server 2008이며 완전히 다른 서버에서 호스팅되며 IIS가 다른 서버에 설치되어 있습니다.
내 웹 서버에서는 다음 오류가 발생합니다. 파일 또는 어셈블리 'Microsoft.sqlserver.types, 버전 = 10.0.0.0, Culture = Neutral, Public Keytoken = 89845DCD8080CC91'또는 그 종속성 중 하나를로드 할 수 없습니다.
웹 서버에서 GAC를 확인 했는데이 특정 DLL이 누락되었습니다. 웹 서버이기 때문에 이것은 나에게 의미가 있으며 SQLServer와 관련된 어셈블리가 없어야합니다.
우리의 응용 프로그램은 IIS와 DB가 동일한 서버에 설치되면서 DEV, 테스트 및 스테이징 환경에서 훌륭하게 작동했습니다.
제작 에서이 문제를 어떻게 지나칠 수 있습니까? 웹 서버에 SQL Server 2008을 설치하여 할 수 있습니다. 그러나 이것은 나에게 의미가 없습니다. 웹 서버입니다. 해당 컴퓨터에 SQL Server 2008을 설치 해야하는 이유는 무엇입니까?
해결책
Microsoft SQL Server 2008 기능 팩
간단한 설명:
SQL Server 2008의 추가 가치를 제공하는 독립형 설치 패키지 모음 인 Microsoft 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 기능 팩이 필요합니다.
그러나 링크가 변경되었습니다.
SQL Server® 2008 R2 용 Microsoft® 시스템 CLR 유형 :
x86 패키지 (sqlsysclrtypes.msi) : http://go.microsoft.com/fwlink/?linkid=188391&clcid=0x409x64 패키지 (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-missing-microsoftsqlservertypesdll?,
첫 번째 응답. 실제로 재배포 가능한 보고서 뷰어 런타임 .dlls를 다운로드하고 프로젝트에 추가하여 파일이없는 기계에 배포되도록 할 수 있습니다.
그리고 VS 2012의 런타임을 실제로 다운로드하는 링크 : http://www.microsoft.com/en-us/download/confirmation.aspx?id=35747
추신 : Nuget (내가 한 일)을 통해 다운로드 할 수도 있습니다. "Microsoft® Report Viewer 2012 런타임"을 검색하면 지금까지 가장 쉬운 방법입니다.
응용 프로그램을 닫고 다시 열어 문제를 해결합니다.