Frage

Der Typ ‚x‘ ist in einer Baugruppe definiert, die nicht verwiesen wird. Sie müssen einen Verweis auf Assembly 'abc123' hinzuzufügen.

Ich habe eine .NET 2.0 Web-Anwendung, die meine Assembly 'abc123' verweist. Die Anordnung besteht im GAC und ich habe festgestellt, dass es die richtige (gleiche) Version. Der Rest der Anwendung hat keine Probleme mit Ausnahme einer ASPX-Seite. Die betreffende Seite hat einen Repeater, der eine Benutzersteuerung als eine seiner „Felder“ anzeigt. Bei der Bindung passiere eine Liste vom Typ y an den Repeater I der Benutzer eine Liste vom Typ x steuern (eine Eigenschaft von y) wie hier gezeigt:

<uc1:usercontrol id="ucusercontrol " runat="server" myPublicUserControlProperty='<%#Eval("CollectionOfX") %>'/>

Auf der Unterkunft Set Benutzersteuerung, binde ich die Liste des Typen x zu einer Gridview in der Benutzerkontrolle.

Eine seltsame Sache zu beachten ist, dass dieser Bericht auf meiner Entwicklung pc aber nicht auf irgendwelchen Servern funktioniert gut, wenn ich bereitstellen. Mein PC ist Windows XP, IIS6, VS2005. Die Server sind Windows Server 2003, IIS 6.

Ich hoffe ich, dass gut genug erklärt. Vielen Dank im Voraus für jede Einsicht Sie bieten können.

War es hilfreich?

Lösung

Ich bin Mikes Mitarbeiter, und wir gearbeitet, um eine Lösung aus.

Der Typ X in seiner Baugruppe definiert ist, dh nur im GAC. Obwohl seine ASP.NET Web appplication eine Referenz hatte, es versagte aus dem GAC für dieses Usercontrol nur zu laden. Der Rest der Anwendung gearbeitet, wie erwartet. Wir bestätigten den ausgefallenen Laden durch eine Kopie der Baugruppe im Verzeichnis ist platzieren und alles funktionierte. Wir entfernten die Montage und das Problem kam zurück.

Unsere Lösung war, um manuell einen Eintrag in die web.config in dem Baugruppen Abschnitt hinzufügen ASP.NET zu dem GAC zu zeigen.

Es sieht aus, wie jedes Mal, wenn Sie einen Typen auf der Seite verweisen (nicht den Code-behind), müssen Sie die Montag Informationen in der Datei web.config definiert oder in einer Seitendirektive.

<assemblies>
        <add assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=[MyPublicKeyToken]"/>   
</assemblies>

Andere Tipps

Es gibt auch ein Fehler, der sich mit ähnlichen Symptomen manifestieren kann, beschrieben hier .

Die Abhilfe ist alles in der C zu löschen:. \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ Verzeichnis, und es scheint nur selbst im Debug-Modus zu manifestieren

Bei der Fehlerbehebung diese Art von Problemen, die Fusion Log Viewer ist schon immer eine große Hilfe.

Ich fand, dass, wenn type x ist eigentlich eine Klasse in Ihrer App_Code, es schmutzig zu machen und wieder Speicher zwingt oft den Web-App neu zu kompilieren und löst das Problem.

Mehr als oft nicht, ist es wegen des im Cache gespeicherten Baugruppen. Eine Möglichkeit, dieses Problem zu beheben ist, indem sie die „starke Referenz“ in der proj oder Config-Datei. Siehe diesen Blog Post

Ich hatte den exakt gleichen Fehler, aber ich hatte ein Öffentlichkeit Konstruktor in meiner Klasse, die als Parameter verwendet wird, ein Objekt aus einem anderen Projekt.

beschloß ich, das Problem, dass Konstruktor interne machen.

Für mich war es eine Versionskontrolle Pull Problem.

In Visual Studio, öffnen Sie "Referenzen" in Ihrer Solution Explorer und navigieren durch.

Wenn etwas ein gelbes Warndreieck auf sich hat, an den Namen erinnern, entfernen Sie sie, und fügen Sie es wieder zurück (oder ReSharper haben es für Sie tun).

ich geschieht mehrmals, nachdem ein Projekt ziehen, wenn ein Mitarbeiter ein neues Paket und Referenzen hinzugefügt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top