Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Deployment von Prism-Webseiten und MSSQL (https://www.delphipraxis.net/158130-deployment-von-prism-webseiten-und-mssql.html)

Daniela.S 7. Feb 2011 07:26

Datenbank: MSSQL • Version: 2008 Express • Zugriff über: Borland.Data.DbxClientDriver

Deployment von Prism-Webseiten und MSSQL
 
Schönen Montag Morgen euch,

ich finde im Netz leider nirgends Informationen welche Dateien man für die Veröffentlichung zum Datenbankzugriff einer Prism-WebSeite mit dem "Borland.Data.DbxClientDriver" Treiber alles benötigt. Habe schon versucht die dll's in das System32 Verzeichnis am Server zu kopieren. Aber leider ohne Erfolg. Weiss jemand was man hier genau benötigt oder wo man Dokumentation dazu findet?


liebe Grüße,
Daniela

Phoenix 7. Feb 2011 08:12

AW: Deployment von Prism-Webseiten und MSSQL
 
Schau Dir mal im Reflector die Borland.Data - Assemblies an. Dort unter Referenzen steht, welche anderen Assemblies von dieser benötigt werden.

Alles, was nicht System.* ist, muss dann entweder auf dem Zielsystem vorhanden und im GAC (Global Assembly Cache) installiert sein, oder aber die Assemblies müssen im /bin - Verzeichnis Deiner Webanwendung liegen.

Aber mal ne Frage am Rande: DbExpress auf .NET ist so unnötig wie ein Kropf. Es setzt auf ADO.NET auf, für das es sowieso für jede Datenbank schon einen besseren(!) Treiber gibt, es kann kein Entity Framework- oder Linq to SQL-Support und zieht somit eine zusätzliche Schicht über ADO.NET rein, die weniger kann und mehr Bugs einführt. Wieso setzt man sowas allen Ernstes ein, wenn man eine (kostenfreie) Schicht drunter ohne Komfortverlust, mit mehr Features und Performanter arbeiten kann?

Daniela.S 7. Feb 2011 10:46

AW: Deployment von Prism-Webseiten und MSSQL
 
Die Webseite verbindet sich mit einem DataSnap Server.
Was würdest du denn stattdessen nehmen?

Phoenix 7. Feb 2011 12:14

AW: Deployment von Prism-Webseiten und MSSQL
 
Yikes.. DataSnap.. noch sowas was man ned braucht :)

Das Problem was DS hat ist a) der Preis und b) die Scaling-Möglichkeiten.

DataSnap skaliert solange gut, wie man 1.) mehr CPU's in eine Kiste stecken kann und 2.) mehr Ram in die Kiste stecken kann. Nur irgendwo ist bei CPU's und RAM halt mal physikalisch Schluss - Wirtschaftlich ist die Grenze schon eher erreicht. Für den Preis von einer richtig großen Kiste bekommt man 20 bis 30 kleinere. Nur lässt sich DataSnap da dann nicht sauber drauf verteilen. Um letzen Endes noch Performance aus einer Maschine raus zu holen sollte die Datenbank auf dem gleichen Rechner liegen (was für n-Tier ja eigentlich schonmal per se Schwachfug ist).

Für den gleichen Preis wie DataSnap (will heissen Differenz zwischen Upgrade auf Delphi Pro gegenüber Enterprise, bei den Vollversionen ist das noch schlimmer) bekommt man andere Pakete, die nicht nur vertikal (d.h. mit der Größe eines Einzelsystems) sondern tatsächlich horizontal (über mehrere Server hinweg) skalieren, dabei noch ein gescheites Loadbalancing mitbringen und vor allem ohne Buggy-Zwischenkomponenten ansprechbar sind.

Daniela.S 7. Feb 2011 12:37

AW: Deployment von Prism-Webseiten und MSSQL
 
Hallo Sebastian,

ist mir schon klar dass es sicher auch bessere Produkte gibt, vor allem wenn es die eigenen sind. Auch wenn es nicht toll ist, aber die Datenbanken werden auf dem gleichen Rechner liegen, weil sie eine Kopie derer sind an der wir arbeiten. Es geht hier nicht um eine Webseite mit 100.000 Zugriffen täglich. Derzeit reden wir eher von unter 50 Zugriffen täglich. Wenn ich die Akzeptanz der Seite mal so weit steigern kann, dass wir auf 1000 kommen wär' das schon gut. Jedoch wird der DS Server noch einige andere Business Funktionen zusammenfassen die derzeit Kreuz und Quer verteilt sind. Von daher kommt aber auch kein übermäßiger Traffic zustande.

Jede Software hat seine Vor- und Nachteile. Wir starten jetzt einmal mit DS, weil alles im Haus ist. Software, Hardware, sowie Know How. Wie es in einigen Jahren aussieht wird man dann ja sehen... DA ist sicher eine Option in Zukunft.


lg,
Daniela

Daniela.S 9. Feb 2011 13:36

AW: Deployment von Prism-Webseiten und MSSQL
 
Ich muss da noch mal nachfragen...

Irgendwie bekomme ich das Installieren der Assemblies in den GAC nicht hin. Mit dem gacutil Tool von Microsoft habe ich die "Shared Assemblies" installiert. Sagt auch brav sie seien installiert aber die Webseite findet nach wie vor DbxClientDriver nicht. Nachdem Mono auf dem Server auch drauf ist, habe ich das Gleiche unter Mono gemacht. Auch hier die Meldung dass es installiert wurde.

Ein "bin" Verzeichnis habe ich in meiner Webseite nicht.

Zuletzt habe ich die Assemblies per Hand nach "C:\Windows\assembly" kopiert. Bis zum Neustart des Servers hat es funktioniert.

Weiss jemand vielleicht einen Rat???

Phoenix 9. Feb 2011 13:55

AW: Deployment von Prism-Webseiten und MSSQL
 
Zitat:

Zitat von Daniela.S (Beitrag 1080522)
Ein "bin" Verzeichnis habe ich in meiner Webseite nicht.

Wie soll das dann bitte laufen?? Irgendwohin muss das Zeug doch kompiliert werden.

Und reden wir hier von einem "Website" oder "Web application" Projekt? Ich hoffe inständig von letzterem. ASP.NET mit Website ist unberechenbar und kompiliert gerne irgendenen Schund zusammen (wenn er überhaupt kompiliert und damit nicht bis zur Runtime wartet...). - Und er vergisst beim Deployment gerne Abhängigkeiten. Bei einem Web Application Projekt macht man Rechtsklick -> Publish und der packt alle benötigten Assemblies sauber zusammen.

Zitat:

Zitat von Daniela.S (Beitrag 1080522)
Irgendwie bekomme ich das Installieren der Assemblies in den GAC nicht hin. Mit dem gacutil Tool von Microsoft habe ich die "Shared Assemblies" installiert. Sagt auch brav sie seien installiert aber die Webseite findet nach wie vor DbxClientDriver nicht.

1.) Wie ist denn die genaue Fehlermeldung?
2.) Was sagt denn ein "gacutil -l" ? Stehen da die Borland.xxx Assemblies drin?
3.) Wenn ja: Stimmen die Versionen (inkl. Public Key Token) mit denen aus Deinen Projekt-Referenzen überein?
4.) Hast Du mit dem Reflector geguckt, welche anderen Assemblies von den von Dir referenzierten Borland.* - Assemblies referenziert werden und die auch in den GAC gelegt?
Hilft ja nix wenn er die Borland.xyz zwar findet, aber nicht laden kann weil die von xyz benötigte Borland.abc fehlt.

Zitat:

Zitat von Daniela.S (Beitrag 1080522)
Zuletzt habe ich die Assemblies per Hand nach "C:\Windows\assembly" kopiert. Bis zum Neustart des Servers hat es funktioniert.

Autsch. Im GAC darf man nie, never ever von Hand rumfpuschen. Das ist schliesslich kein normaler Ordner sondern ein verwalteter Code-Storage. Das gibt die hübschesten, nicht nachvollziehbaren Seiteneffekte. Der beste wäre noch, dass er gar kein Assembly mehr findet. Im Normalfall wird das System aber eher im laufenden Betrieb wenn er den Cache neu organisiert mal das eine, mal das andere Assembly zufällig verlieren.
Wenn solche Fehler auftreten: .NET komplett(!) de- und neu installieren. Reparaturinstallation hilft Erfahrungsgemäß auch nix.

Daniela.S 9. Feb 2011 14:07

AW: Deployment von Prism-Webseiten und MSSQL
 
Hmm, ok es ist eine Webseite...

dann werde ich das Ganze mal in eine Web Anwendung zusammenfassen...



Der genaue Wortlaut der Fehlermeldung:
"Unable to find the requested .Net Framework Data Provider. It may not be installed. "
Line 425: providerFactory := DbProviderFactories.GetFactory( 'Borland.Data.DbxClientDriver' );

Phoenix 9. Feb 2011 14:14

AW: Deployment von Prism-Webseiten und MSSQL
 
AH, andere Baustelle.
Er findet nicht das Assembly nicht, sondern die DbProviderFactory aus dem Assembly.

Folgendes in der Web.config sollte helfen:
Code:
<system.data>
    <DbProviderFactories>
      <add name="Datasnap AdoDbx Data Provider" invariant="Borland.Data.DbxClientDriver" description=".Net Framework Data Provider for Datasnap" type="Borland.Data.TAdoDbxDatasnapProviderFactory, Borland.Data.DbxClientDriver, Version=14.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b" />
    </DbProviderFactories>
  </system.data>
Die Version (und ggf. PublicKeyToken) entsprechend Deiner Version anpassen. Dann findet der FactoryProvider nämlich die Factory auch.

Auf der Entwicklungsmaschine sollte der Eintrag durch die Installation schon in der machine.config stehen. Den kannst Du daraus auch 1:1 kopieren.

Daniela.S 9. Feb 2011 14:48

AW: Deployment von Prism-Webseiten und MSSQL
 
Super! Vielen lieben Dank!

Das mit der Web-Applikation muss ich mir näher anschauen. So einfach rüberkopieren war wohl nicht *gg*
Scheinbar gibt's es da dann einige Assemblies nicht. zb System.Web.Script.Serialization für den JavaScriptSerializer...

Danke, damit ist mir echt schon mal geholfen :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz