hansdampf06
Goto Top

IIS und ASP.NET: MariaDB als Dataprovider verwenden

Hallochen Gemeinde!

Wie bereits unter der Frage Migration von SQL Server auf MariaDB (oder MySQL) kurz beschrieben, bin ich gerade dabei die SQL-Server-Datenbank nach MariaDB zu migrieren. Dafür ist der erste Block von Tabellen, Prozeduren etc. bereits abgearbeitet. Nun geht es darum, diesen ersten Block in der Webseite verfügbar zu machen.

Jedoch stehe ich im Moment etwas auf dem Schlauch, was die Hinzufügung von MariaDB zum IIS / zu ASP.NET angeht. Orientiert an SQL Server müsste nach meinem Verständnis folgendes auf dem IIS und für ASP.NET erforderlich sein:

1. ODBC-Treiber für MariaDB: ist bereits installiert.

2. Dataprovider/-connector: Welcher Connector sollte gewählt werden? MySQL Connector/NET oder MySqlConnector - seitens der MariaDB-Beschreibungen wird wohl letzterer dem ersteren vorgezogen. Gibt es Eurerseits aus der Erfahrung heraus Argumente, sich für einen von beiden zu entscheiden?

3. Connectionstring in der web.conf: Das orientiert sich an der Wahl des vorgenannten Providers und erscheint mir insoweit klar, z.B. für MySqlConnector
<add name="MariaDB" providerName="MySqlConnector" connectionString="Server='ServerName',UserID='user',Password='...',Database='DBName'" />  

4. Einbinden des Objekts des Providers in ASP.NET:
a) Je nach Wahl des vorgenannten Providers entweder global in der web.conf über add namespace oder am Beginn der jeweiligen Codedatei mit using (oder import). Das ist selbstredend.
b) Verfügbarmachen der für den Provider erforderlichen Dateien: Reicht es beispielsweise bei MySqlConnector aus, einfach aus der heruntergeladenen Package-Datei die passende NET-dll-Datei nebst zugehöriger xml-Datei zu entpacken und in das bin-Verzeichnis der Webseite (gerne auch in ein Unterverzeichnis) zu kopieren oder muss mehr getan werden? Ich würde eigentlich denken, dass das Kopieren genügen müsste.

5. Muss im IIS noch etwas konfiguriert werden? Z.B. in der machine.conf? Habe ich sonst noch etwas übersehen?

Vielen Dank im Voraus für Eure Rückäußerung und viele Grüße
HansDampf06

PS: Der programmatische Umgang mit der Datenverbindung im eigentlichen ASP.NET-Code soll hier im Übrigen keine Rolle spielen.

Content-Key: 7235820222

Url: https://administrator.de/contentid/7235820222

Printed on: April 27, 2024 at 05:04 o'clock

Member: MysticFoxDE
Solution MysticFoxDE Jan 24, 2024 at 11:02:15 (UTC)
Goto Top
Moin @HansDampf06,

3. Connectionstring in der web.conf: Das orientiert sich an der Wahl des vorgenannten Providers und erscheint mir insoweit klar, z.B. für MySqlConnector
<add name="MariaDB" providerName="MySqlConnector" connectionString="Server='ServerName',UserID='user',Password='...',Database='DBName'" />  

das sieht gut aus.

5. Muss im IIS noch etwas konfiguriert werden? Z.B. in der machine.conf? Habe ich sonst noch etwas übersehen?

Normalerweise nein.

Gruss Alex
Member: mbehrens
Solution mbehrens Jan 24, 2024 at 13:22:38 (UTC)
Goto Top
Zitat von @HansDampf06:

1. ODBC-Treiber für MariaDB: ist bereits installiert.

Der sollte doch unnötig sein.

3. Connectionstring in der web.conf: Das orientiert sich an der Wahl des vorgenannten Providers und erscheint mir insoweit klar, z.B. für MySqlConnector
<add name="MariaDB" providerName="MySqlConnector" connectionString="Server='ServerName',UserID='user',Password='...',Database='DBName'" />  

Das sieht gut aus.

5. Muss im IIS noch etwas konfiguriert werden? Z.B. in der machine.conf? Habe ich sonst noch etwas übersehen?

Da wäre mir zur Zeit nichts bekannt.
Member: HansDampf06
HansDampf06 Jan 24, 2024 at 13:52:02 (UTC)
Goto Top
Besten Dank schon 'mal an @MysticFoxDE und @mbehrens!

1. ODBC-Treiber für MariaDB: ist bereits installiert.
Der sollte doch unnötig sein.
Das war einer meiner Unsicherheitspunkte, weil die bisher recherchierten Informationen entweder vom MS SQL Server handelten oder aber auf die erforderlichen Schritte für den IIS nicht so richtig eingegangen sind. Hinsichtlich des ODBC-Treibers hatte ich mich deswegen daran orientiert, was seitens Microsoft für sein eigenes Datenbanksystem installiert ist. Wenn aber ein ODBC-Treiber nicht erforderlich ist, dann ist wohl alles Erforderliche im Connector enthalten. Um so besser!

Dann kommt jetzt die Klarheit in die ganze Sache, die ich mir nicht hinreichend erschließen konnte.

Viele Grüße
HansDampf06
Member: HansDampf06
HansDampf06 Jan 26, 2024 at 10:26:30 (UTC)
Goto Top
So, meine Lieben!

Ich konnte jetzt über eine Testseite den Zugriff von der Webseite auf MariaDB prüfen. Eine einfache SELECT-Abfrage lieferte die Anzahl an Datensätzen, die aktuell in der abgefragten Tabelle enthalten sind. So soll es ja auch sein!

Das Referenzieren auf die MySqlConnector.dll funktionierte zunächst nicht, weil beim händischen Hinzufügen die für MySqlConnector erforderlichen Abhängigkeiten im bin-Verzeichnis der Webseite fehlten. Jedoch ist es in Visual Studio relativ einfach, das über nuget.info beziehbare Installationspaket abzurufen. Bei der Installation fügt dann Visual Studio die erforderlichen Abhängigkeiten mit ins bin-Verzeichnis ein. Im Anschluss - ich kompiliere bisher die Codedateien der Namespaces manuell - genügt dann das bloße Hinzufügen von /reference:MySqlConnector.dll zum Kompilierbefehl der betreffenden Namespaces.

Zugleich bestätigt sich der Hinweis von @mbehrens betreffend den ODBC-Treiber. Denn auf dem Visual-Studio-Rechner ist kein ODBC-Treiber für MariaDB installiert und das dortige IIS 10.0 Express funktioniert dennoch einwandfrei. Mithin kann ich den ODBC-Treiber auf dem eigentlichen IIS wieder deinstallieren.

Daher nochmals besten Dank für die Unterstützung!

Viele Grüße
HansDampf06