Hallo Frank
ich hätte mal eine Frage an diejenigen, die sich mit Datenbanken etwas auskennen.
Ich habe hier in meinem LAN einen NT4 Server mit IIS4 und MSSQL7. Wenn ich von meiner Workstation im LAN arbeite, findet der IIS4 über die file-DSN den SQL-Server problemlos.
Wieso verwendest Du eine File-DSN und nicht eine System-DSN?
Wie greifst Du über eine File-DSN auf den MS-SQL_Server zu? Ich dachte File-DSN seien ausschliesslich für ISAM- und Access-Datenbanken gedacht.
Für den Zugriff auf den SQL-Server arbeite ich ausschliesslich über eine System-DSN mit dem SQL-Treiber.
Nun will ich aber das Ergebnis live über das Internet testen und richte einen Server mit NT4 und IIS4 ein, den ich per statischer IP an meine Standleitung hänge. Ich kopiere alles in das wwwroot dieses Servers, auch die file-dsn's. Dann gebe ich den Hostnamen bzw. die passende WWW-IP 195.... in meinen Webbrowser ein und freue mich dann, das auf dem Display folgender Fehler erscheint:
Hast Du die entsprechende Datenquelle auch auf dem neuen Server eingerichtet?
Auf dem Webserver musst zwingend eine Datenquelle mit dem gleichem Namen eingerichtet sein, wie Du in Deinen ASP-Seiten verwendest.
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80004005'
[Microsoft][ODBC SQL Server Driver][Named Pipes]Angegebener SQL Server nicht gefunden.
/sgs/incs/startdb.inc, Zeile 5
Im wwwroot des Webservers ist eine Weiterleitungsdatei auf den Webserver mit SQL im LAN (192.168.80.98), die funktioniert, wenn ich hier im LAN bin (ich lande also dort, wo ich sonst mit der direkteingabe gelandet wäre), aber in dem Verzeichnis http://hostname/SGS/ wo die in der File-DSN steht, nimm 192.168.80.98 als SQL-Server bekomm ich immer den obigen Fehler.
Wie kann ich das noch realisieren? Oder muß ich auf dem am Web hängenden Server den SQL-ler installieren?? Oder müßte ich einen SQL-Server mit einer Internet-IP versehen und darauf zeigen lassen. Wer hat da einen oder zwei Tipse parat?? Wäre sehr dankbar.
Wenn der Web-Server irgenwo im Web hängt (z.B. bei Deinem ISP), dann wird der ODBC-Zugriff über das Named-Pipe-Protokoll aussserhalb des LANs vom ISP nicht funktionieren (wenn überhaupt).
Willst Du die Datenquelle auf den SQL-Server bei Dir im LAN zeigen lassen, so musst Du in der ODBC-Datenquelle auf dem Web-Server das Netzwerkprotokoll auf TCP/IP umstellen.
Dies ist unter dem Button "Clientkonfiguration" im 2. Registertab der Datenquellen-Konfiguration möglich. Wähle dazu die Netzwerkbibliothek TCP/IP aus und gebe dann die IP-Adresse des SQL-Servers ein.
Die IP-Adresse muss natürlich eine im Internet gültige Adresse sein (also nicht 192.168....). Dazu muss der Firewall die Adresse dann entsprechend auf die interne Adresse in Deinem LAN mappen. Der Port für den SQL-Zugriff ist standardmässig 1433.
Im "Server Network Utility" in der Programmgruppe zum "MS SQL 7.0 Server" kannst Du für Deinen SQL-Server das TCP/IP-Protokoll hinzufügen, falls das bei der Installation unterdrückt wurde. im selben Dialog kann man auch die Port-Nummer ändern.
Diese Lösung ist aber nur für geringe Datenvolumen zwischen Web-Applikation (auf dem IIS) und der Datenbank geeignet. Ausserdem sollten dabei auch keine hohen Sicherheitsansprüche bestehen.
Besser und sicherer ist auf jeden Fall, den SQL-Server gleich mit auf dem Web-Server zu installieren.
Grüsse
Tom