2009-10-26 16 views
27

Ich habe Webanwendung, die wir in einer Produktion eingesetzt haben. Wir haben separate Server für WEB und Datenbank. Die DB ist SQL Server 2008, und sie wird auf einem völlig anderen Server gehostet und wir haben unseren IIS auf einem anderen Server installiert.Konnte Datei oder Assembly nicht laden 'Microsoft.SqlServer.Types

Auf meinem Webserver erhalten wir folgenden Fehler. Konnte Datei oder Assembly ‚Microsoft.SqlServer.Types, Version = 10.0.0.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91‘ oder eine ihrer Abhängigkeiten

Ich habe die GAC auf dem Webserver laden und es fehlte das bestimmte DLL. Dies ist für mich sinnvoll, da es sich um einen Webserver handelt, der keine Assemblys im Zusammenhang mit SQLServer haben soll.

Unsere Anwendung funktionierte hervorragend in unserer Entwicklungs-, Test- und Staging-Umgebung, da unsere IIS und DB auf demselben Server installiert waren.

Wie komme ich an diesem Problem bei der Produktion vorbei? Ich kann, indem ich SQL Server 2008 auf dem Webserver installiere. Aber das macht für mich keinen Sinn. Es ist ein Webserver - warum sollte ich SQL Server 2008 auf diesem Computer installieren?

+2

SVI- Sie getrennt wurde Abhängigkeiten von den SQL-Typen in Ihrer Anwendung haben, so dass Sie diese Baugruppen auf jedem Feld haben muss, auf die Sie Ihre Anwendung installieren. Deshalb müssen Sie diese SQL-Bits auf Ihrem Webserver installieren. Das Feature Pack wird bereitgestellt, damit Sie unterstützende SQL-Assemblys installieren können, ohne den vollständigen Server zu installieren. –

+0

Yup. Ich verstehe es jetzt. Danke für die Information und Erklärung. – SVI

Antwort

14

Microsoft SQL Server 2008 Feature Pack

Kurzbeschreibung:

Laden Sie die Microsoft SQL Server 2008 Feature Pack, eine Sammlung von Stand-alone-Pakete installieren, die für SQL Server zusätzlichen Wert bieten 2008. Insbesondere die CLR-Datentypen.

Hinweis: Aktualisiert Feature Pack Link Jan 2013

+0

Dave, Ich habe Schwierigkeiten zu verstehen, warum sollte ich Komponenten Komponenten SQL SERVER auf meinem Webserver installieren. – SVI

+3

Da Sie die räumlichen SQL Server-Typen verwenden möchten. – Cornelius

+1

Dave, ich sehe, woher du kommst .. Meinst du, ich sollte Microsoft SQL Server System CLR Typen installieren BESCHREIBUNG: Das Paket SQL Server System CLR Typen enthält die Komponenten, die die neuen Geometrie-, Geografie- und Hierarchie-ID-Typen in SQL Server implementieren 2008. Diese Komponente kann separat vom Server installiert werden, damit Clientanwendungen diese Typen außerhalb des Servers verwenden können. – SVI

15

Report Viewer benötigen diese Klasse

Microsoft.ReportViewer.Common.dll 
Microsoft.ReportViewer.ProcessingObjectModel.dll 
Microsoft.ReportViewer.WebForms.dll 
Microsoft.ReportViewer.WinForms.dll 
Microsoft.ReportViewer.DataVisualization.dll 
Microsoft.SqlServer.Types.dll 
+0

Dies ist die richtige Antwort – GuidoG

1

konnte ich diesen Fehler ignorieren, einfach durch Drücken der Schaltfläche "Weiter", wenn der Fehler aufgetreten. Es schien nicht den Betrieb des 2008 R2-Servers nach Abschluss der Installation zu beeinträchtigen. Ich verwende Windows 7 64 Bit.

0

Bitte sehen in diesem Forum Beitrag: https://social.technet.microsoft.com/Forums/sharepoint/en-US/7e673dde-dfca-4b1a-a840-025a2ae9ee58/reportviewer-msi-is-missing-microsoftsqlservertypesdll?forum=sqlreportingservices,

die erste Antwort. Sie können die verteilbare Report Viewer-Laufzeitdatei .dlls herunterladen und sie Ihrem Projekt hinzufügen, sodass sie auf Computern bereitgestellt werden, auf denen diese Dateien nicht vorhanden sind.

Und der Link zum Download tatsächlich die Laufzeit für VS 2012: http://www.microsoft.com/EN-US/download/confirmation.aspx?id=35747

PS Sie diese auch über NuGet herunterladen Suchen Sie einfach nach „MICROSOFT® REPORT VIEWER 2012 LAUFZEIT“ und sie (das ist, was ich getan habe.) sollte kommen - einfachste Weg so weit

6

Die beste Lösung wäre, das Microsoft.SqlServer.Types NuGet-Paket zu installieren.

PM> Install-Package Microsoft.SqlServer.Types 

Und folgen Sie den Anweisungen aus der Readme.htm

+0

zusätzlich - sobald das nugget-Paket installiert ist, können Sie sicherstellen, dass die Dll-Referenz-Eigenschaft auf 'copy local = true' gesetzt ist –

-2

Für mich Schließen Sie die Anwendung und öffnen Sie es, das Problem zu lösen