Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   [ASP.NET] Falsche "assembly reference" (https://www.delphipraxis.net/51759-%5Basp-net%5D-falsche-assembly-reference.html)

MrSpock 18. Aug 2005 10:34


[ASP.NET] Falsche "assembly reference"
 
Hallo,

ich kämpfe weiter bei dem Versuch, das Master / Detail Beispiel von D2005 ASP.NET zum Laufen zu bringen. Ich habe mit bdsdeploy alle Dateien auf den Server geschoben. "Alle" scheint nicht zu stimmen, weil die ganzen Datenbankzugriffs DLLs offensichtlich nicht mit übertragen werden. Also habe ich diese per FTP manuell in das /bin Verzeichnis geschoben, in dem gesucht wird. Das hat auch ganz gut funktioniert, nur bei der 3. Datei kommt jetzt folgender Fehler:

Zitat:

The located assembly's manifest definition with name 'Borland.Data.Interbase' does not match the assembly reference.
Was will mir diese Fehlermeldung sagen? Und wo bekomme ich die richtige Version her. Bei der Installation von D2005 wird nur eine Borland.Data.Interbase.Dll auf die Platte geschrieben und die habe ich übertragen. :gruebel:

Robert_G 18. Aug 2005 10:37

Re: [ASP.NET] Falsche "assembly reference"
 
Du siehst doch im Projekt Manager welche Referenzen deine Assembly hat.
Schaue welche davon keine Standard Assembly von .Net ist und die kannst du dann a) in den GAC deines WebServers installieren (wenn du sie öfter benutzen wirst) oder b) einfach in den Ordner deiner Binaries kopieren.

MrSpock 18. Aug 2005 10:45

Re: [ASP.NET] Falsche "assembly reference"
 
Hallo Robert,

danke für die schnelle Antwort. Die DLL "Borland.Data.Interbase.Dll" steht ja bereits in meinem /bin Ordner. Vorher wurde sie gar nicht gefunden!

Detailliert heißt es:

Zitat:

=== Pre-bind state information ===
LOG: DisplayName = Borland.Data.Interbase, Version=2.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b
(Fully-specified)
LOG: Appbase = file:///d:/web/xxxx/asp.xxx.de
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===

LOG: Publisher policy file is not found.
LOG: No redirect found in host configuration file (C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspn et.config).
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\confi g\machine.config.
LOG: Post-policy reference: Borland.Data.Interbase, Version=2.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/e2298e5a/4855754e/Borland.Data.Interbase.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/e2298e5a/4855754e/Borland.Data.Interbase/Borland.Data.Interbase.DLL.
LOG: Attempting download of new URL file:///d:/web/xxxx/asp.xxx.de/bin/Borland.Data.Interbase.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Minor Version


Stack Trace:

[FileLoadException: The located assembly's manifest definition with name 'Borland.Data.Interbase' does not match the assembly reference.]
System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark& stackMark) +0
System.Reflection.Assembly.InternalLoad(AssemblyNa me assemblyRef, Boolean stringized, Evidence assemblySecurity, StackCrawlMark& stackMark) +307
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark) +68
System.Reflection.Assembly.Load(String assemblyString) +19
Borland.Data.Provider.BdpConnection.e() +75
Borland.Data.Provider.BdpConnection.f() +42
Borland.Data.Provider.BdpCommand.set_Connection(Bd pConnection value) +45
WebForm1.TWebForm1.InitializeComponent()
WebForm1.TWebForm1.OnInit(EventArgs e)
System.Web.UI.Control.InitRecursive(Control namingContainer) +240
System.Web.UI.Page.ProcessRequestMain() +197
Hab nur 2 Details durch xxxx bzw. xxx ersetzt.

Robert_G 18. Aug 2005 11:04

Re: [ASP.NET] Falsche "assembly reference"
 
OK, entferne die Referenz und füge die DLL, die du rüberkopiert hast als Referenz an dein Projekt.
Du scheinst 2 Versionen dieser Datei zu haben. .Net lässt dich nicht ohne weiteres ein Assembly in der falschen Version verwenden.
Man kann Kompatibilitäten einstellen, wenn sie im GAC liegt, aber das ist für dich jetzt gerade noch reichlich uninteressant.
Interessanter ist vielmehr: Wie kommst du an 2 unterschiedliche Veriosnen einer DLL, die doch mit Delphi installiert wird? :shock: :gruebel:

MrSpock 18. Aug 2005 18:09

Re: [ASP.NET] Falsche "assembly reference"
 
Hallo Robert,

interessanterweise taucht die Referenz auf Borland.Data.Interbase.Dll in der Referenzliste gar nicht auf. Ich habe sie wie du empfohlen hast einfach mal hinzugefügt und gesehen, dass hier die Version 2.2.0.0 auf meinem Rechner ist. So wie ich die oben beschriebene Fehlermeldung interpretiere, nutzt mein Server aber die Version 2.0.0.0, obwohl in dem /bin Verzeichnis die neuere Version steht. Übrigens hat das Hinzufügen und das neu Übertragen der geändereten Dateien keinen Erfolg gebracht. Die Fehlermeldung bleibt gleich.

r_kerber 18. Aug 2005 18:17

Re: [ASP.NET] Falsche "assembly reference"
 
Zitat:

Zitat von MrSpock
So wie ich die oben beschriebene Fehlermeldung interpretiere, nutzt mein Server aber die Version 2.0.0.0, obwohl in dem /bin Verzeichnis die neuere Version steht.

Da stellt sich natürlich die Frage, wer hat diese Version installiert? Ich hatte mit den BDP-Assemblies selbst bisher noch keine Probleme. Allerdings habe ich nicht Interbase verwendet, sondern MSAccess.

MrSpock 18. Aug 2005 18:24

Re: [ASP.NET] Falsche "assembly reference"
 
Hallo Rainer,

ich habe den WebSpace von Matt genommen. :stupid:

Aber ist es denn nicht so, dass die DLLs in meinem /bin Verzeichnis Vorrang haben müssten? Ich habe jetzt sogar noch einmal alle DLLs, die in der Referenzliste im Delphi Projekt stehen auf den Server hochgeladen, aber die Fehlermeldung bleibt gleich. Wenn ich die Interbase DLL nicht hochlade, kommt die Fehlermeldung, dass eben diese gar nicht gefunden wird, lade ich sie hoch, kommt der Mismatch!?

r_kerber 18. Aug 2005 18:30

Re: [ASP.NET] Falsche "assembly reference"
 
Zitat:

Zitat von MrSpock
Aber ist es denn nicht so, dass die DLLs in meinem /bin Verzeichnis Vorrang haben müssten?

Stehen die in /bin oder in /exc/bin? In letzteres gehören die rein!

Robert_G 18. Aug 2005 18:35

Re: [ASP.NET] Falsche "assembly reference"
 
Haue einfach beide in den GAC und lasse .Net Zauberkünste die richtige Version wählen. :)

MrSpock 18. Aug 2005 18:36

Re: [ASP.NET] Falsche "assembly reference"
 
Hallo Rainer,

das Verzeichnis /exc/bin existierte noch nicht und in der Fehlermeldung steht ja auch nicht, dass der Server dort suchen würde. Dennoch habe ich die Dlls (zumindest die Borland.Data.xxx Dlls in das von mir neu erstellte Verzeichnis /exc/bin kopiert. Die Fehlermeldung bleibt leider gleich. :?

@Robert: Was ist GAC und wie haue ich die Teile darein? :stupid:

Robert_G 18. Aug 2005 18:44

Re: [ASP.NET] Falsche "assembly reference"
 
GAC == Global Assembly Cache
Im GAC können mehrere Versionen der gleichen Assembly liegen. Die Runtime wird dann die jeweils passende heraussuchen.
Assemblies im GAC haben immer Vorrang gegenüber denen, die im File system liegen.

Gehe mal in deinem Server auf die Windows-Verwaltung und dort auf die .Net 1.1 Config.
Dort machst du einen Rechstklick auf den Assembly Cache und fügst die Assemblies hinzu.
Das war's für's erste. Du musst jetzt keine Interbase.Dingsbums.dll mit zukünftigen Projekten auf den Server bringen. :)

MrSpock 18. Aug 2005 18:47

Re: [ASP.NET] Falsche "assembly reference"
 
Hallo,

wie ist denn die Fehlermeldung zu lesen?

Zitat:

LOG: Publisher policy file is not found.
LOG: No redirect found in host configuration file (C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspn et.config).
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\confi g\machine.config.
LOG: Post-policy reference: Borland.Data.Interbase, Version=2.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/e2298e5a/4855754e/Borland.Data.Interbase.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/e2298e5a/4855754e/Borland.Data.Interbase/Borland.Data.Interbase.DLL.
LOG: Attempting download of new URL file:///d:/web/xxxx/asp.xxx.de/bin/Borland.Data.Interbase.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Minor Version
Von unten nach oben? Er sucht ja korrekt in dem Verzeichnis file:///d:/web/xxxx/asp.xxx.de/bin/Borland.Data.Interbase.DLL. Dorthin habe ich die DLL ja kopiert. Aber warum kommt darüber:

Zitat:

LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/e2298e5a/4855754e/Borland.Data.Interbase/Borland.Data.Interbase.DLL.
@Robert: Da muss ich mal mit Matt sprechen, da ich keinen direkten Zugriff auf die .NET Verwaltung habe.

r_kerber 18. Aug 2005 20:12

Re: [ASP.NET] Falsche "assembly reference"
 
Zitat:

Zitat von MrSpock
@Robert: Was ist GAC und wie haue ich die Teile darein? :stupid:

Da Du auf dem WebServer keine Admin-Rechte hast, gar nicht.
Und noch etwas: Ich habe inzwischen mit BDP bei ASPX-Anwendungen abgeschlossen. Das gibt zuviel Probleme. Das gleiche gilt IMHO für einige der Borland-WebControls (DBWebNavigator). Ich verwende jetzt grundsätzlich nur noch .net-Standard. Für Intranets mag das alles ja ganz nett sein, wenn man seinen Server selbst administrieren kann...

Matt 18. Aug 2005 20:35

Re: [ASP.NET] Falsche "assembly reference"
 
also ich muss Rainer da zustimmen. Die Borland .Net Entwicklung macht mir (als Serveradmin) ziemliche Probleme. Keiner kann genau sagen, welche Einstellungen vorgenommen werden müssen und Nachfragen werden so abgetan als wäre man zu blöd.

Die, die mich kennen wissen, das ich alles tun würde, damit Eure Tests/Projekte laufen, nur ohne die konkreten Aussagen vom Hersteller bin ich machtlos!

Die Vorschläge von Robert_G hatte ich vorher schon mal versucht und jetzt nochmal mit den dlls von Mr. Spock, aber damals wie heute ohne Erfolg.

Wenn jemand Infos zu diesem Thema hat bin ich gern bereit diese umzusetzen!

Gruß Matt

MrSpock 18. Aug 2005 21:26

Re: [ASP.NET] Falsche "assembly reference"
 
Hallo Matt,

in der Fehlermeldung wird ja der Pfad:

Zitat:

C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/e2298e5a/4855754e/Borland.Data.Interbase.DLL
angezeigt. Hast du dorthin mal meine DLL gepackt oder wir Robert gesagt hat in den GAC?

Robert_G 18. Aug 2005 21:42

Re: [ASP.NET] Falsche "assembly reference"
 
Zitat:

Zitat von Matt
Die Vorschläge von Robert_G hatte ich vorher schon mal versucht und jetzt nochmal mit den dlls von Mr. Spock, aber damals wie heute ohne Erfolg.

Hi Matt :hi:
Schön, dass du vorbeischaust. :)
Hast du die DLL in den GAC gepackt? Vielleicht sogar beide Verionen?
Wäre ein guter Service, falls du mehrere Kunden hast, die den BDP verwenden möchten. ;)
Die bräuchten dann nämlich nur ihre Binaries und content files hochladen. Könnte aber ein Lizenzproblem geben... (Ich kenne die Lizenz nicht ;) )

MrSpock 18. Aug 2005 21:49

Re: [ASP.NET] Falsche "assembly reference"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich hab hier mal den Ausschnitt aus meiner Konfiguration angehängt, der das Problem (möglicherweise) beinhaltet.
Matt kannst du mal die Versionen mit deinem GAC vergleichen?


Ich habe mal weiter gesucht und hier bei Borland einen Artikel gefunden, aus dem hervorgeht, dass D2005 wohl mit der Version 2.0.0.0 der oben genannten DLL ausgeliefert wird. Ich vermute, dass ich die 2.2.0.0 habe, weil ich alle deutschen Updates von D2005 Architekt eingespielt habe.

Matt 19. Aug 2005 11:20

Re: [ASP.NET] Falsche "assembly reference"
 
@robert_g
Nein, ich hatte nur die 2.2.0.0 und das hatte nichts geholfen.

Da die Seite aber die 2.0.0.0 gefordert hat, musste man unter "Configured Assemblies" die neuere Version anlegen und die alte Versionsnummer auf die neue setzen. Das Problem haben wir somit zumindest eingegrenzt. Mal schauen was jetzt kommt :-)

DANKE FÜR DEINE HILFE!

Gruß Matt


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.

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