2009-07-31 6 views
1

ich eine sehr einfache test.asp Seite bekam dieKlassische asp - 64-Bit-MDAC Referenz Problem

auf einem 64-Bit-Server ausgeführt werden muss

zuerst versucht i

<!--METADATA TYPE="TypeLib" NAME="Microsoft ActiveX Data Objects 2.5 Library" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" VERSION="2.5"--> 
<% 
.... more code 

wenn auch nicht (auch nicht funktioniert ich fand die Referenz in COM) die ich versuche,

<!--METADATA TYPE="TypeLib" NAME="Microsoft ActiveX Data Objects 2.8 Library" UUID="{2A75196C-D9EB-4129-B803-931327F72D5C}" VERSION="2.8"--> 
<% 
... more code 

das funktioniert ,, aber warum kann ich Referenz nicht die Version 2.5, wenn die Bibliothek auf dem Server vorhanden?

+0

Wenn ich unter Verweis in Regedit schaue. Microsoft ActiveX Data Objects 2.5-Bibliothek verweist auf Datei C: \ Programme (x86) \ Gemeinsame Dateien \ System \ ado \ msado25.tlp Und Microsoft ActiveX Data Objects 2.8-Bibliothek verweist auf Datei C: \ Programme (x86) \ Common Files \ System \ ado \ msado15.dll Ich frage mich, ob die Antwort in der Beschränkung in 64 Bit bei der Bezugnahme auf ". TLP" vs ". DLL" liegt? – BBorg

Antwort

2

Josip ist fast korrekt MDAC 2.5 ist nur 32 Bit (2,8 hat einen 64-Bit-Geschmack). Standardmäßig wird der Anwendungspool auf 64-Bit-Servern mit 64-Bit-Prozessen ausgeführt. Es wird in der 64-Bit-Version der Systemstruktur nach der 2.5-Typ-Bibliotheksreferenz suchen, wird sie aber nicht finden (es ist nur in der 32-Bit-Version vorhanden).

Wenn Sie Ihre Anwendungspooleinstellungen so bearbeiten, dass sie als 32 Bit ausgeführt werden, sollten Sie feststellen, dass die 2.5-Referenz funktioniert.

+0

THX für die Antwort, ich glaube, Sie haben Recht. Eine Sache bleibt noch unbeantwortet. Die Bibliothek msado25.tlp befindet sich sowohl in C: \ Programme \ Gemeinsame Dateien \ System \ ado als auch in C: \ Programme (x86) \ Gemeinsame Dateien \ System \ ado. Warum funktioniert die Referenz nur mit 2.8? Thx für Ihre Zeit, sehr geschätzt – BBorg

+0

Ich würde es dort der Vollständigkeit halber erraten, sie werden identisch sein. Der einzige Unterschied ist, dass 2.5 in der 64-Bit-Struktur nicht registriert ist. – AnthonyWJones

+0

Gibt es einen Grund, nicht nur 2,8 zu verwenden? –

0

MDAC ist nur für 32-Bit verfügbar.

Sie müssen Ihre Anwendung zu Ziel x86 ändern (standardmäßig richtet sie sich an AnyCPU). Es wird immer noch auf x64, aber mit weniger Speicherplatz ausgeführt.

+1

thx für aushelfen. Vielleicht fehlt etwas .. aber das ist eine klassische ASP-Seite, innerhalb einer asp.net-App. Also muss ich im Grunde jede Kompilation machen. Warum beeinflusst dann die Plattformeinstellung das Ergebnis? Anyways warum funktioniert dann der Verweis auf 2.8? – BBorg

+0

In diesem Fall ist meine Antwort nicht korrekt. –

+0

@Josip: Wenn Sie glauben, dass die Antwort falsch ist, sollten Sie sie löschen. – AnthonyWJones

Verwandte Themen