Frage

OK, beginnt diese mich zu fahren verrückt. Ich habe eine asp.net Webapp. Ziemlich einfach, die meisten der Code in der .aspx.vb, und ein paar Klassen in App_Code.

Das Problem, das nur auftritt, heute begonnen hat (obwohl die meisten der Code bereits geschrieben wurde), ist, dass hin und wieder, ich habe diese Fehlermeldung:

  

Fehler BC30002: Typ ‚XXX‘ ist nicht definiert

Der Fehler tritt auf etwa jedes Mal wenn ich die Dateien im Ordner App_Code ändern. EDIT: OK, dies geschieht auch, wenn ich etwas nicht berühren für eine Weile, dann die Seite aktualisieren. Ich bin immer noch genau, um herauszufinden, wie man diesen Fehler auslösen.

Ich muss nur noch ein wenig warten, ohne etwas zu berühren, dann aktualisieren Sie die Seite und es funktioniert, aber es ist sehr ärgerlich.

Also suchte ich ein bisschen, aber nichts kam außer Importe fehlen. Jede Idee?

War es hilfreich?

Lösung 2

Ich denke, dass ich das Problem gefunden.

Mein Code war wie folgt aus:

Imports CMS

Sub Whatever()
    Dim a as new Arbo.MyObject() ' Arbo is a namespace inside CMS
    Dim b as new Util.MyOtherObject() ' Util is a namespace inside Util
End Sub

Ich bin mir nicht sicher, warum ich es so geschrieben, aber es stellt sich die Tatsache heraus, dass ich Klassen rief ohne entweder ihre gesamte Namespace aufrufen oder den Import ihrer gesamten Namensraum den Fehler wurde ausgelöst wird.

Ich schrieb es wie folgt aus:

Imports CMS.Arbo
Imports CMS.Util 

Sub Whatever()
    Dim a as new MyObject()
    Dim b as new MyOtherObject()
End Sub

Und jetzt funktioniert es ...

Andere Tipps

Klingt wie ein Pre Kompilierung Problem, vor allem, weil Sie erwähnen, dass Sie den Fehler und dann warten, und es verschwindet. ASP.NET kann in dem Prozess nach wie vor der Anwendung dynamisch kompilieren oder es hat die Typen in verschiedene Baugruppen zusammengestellt.

Bei der dynamischen Kompilierung, Sie sind nicht garantiert verschiedene Code-Behind-Dateien in die gleiche Assembly kompiliert haben. So ist der Typ Sie verweisen nicht in der Lage sein, innerhalb seiner vorkompilierte Montage gelöst werden.

Versuchen Sie, die „@Reference“ Direktive auf die Laufzeit, um anzuzeigen, dass Ihre Seite und die Datei, die Ihren Typ enthält, sollte in die gleiche Assembly kompiliert werden.

@ Reference - MSDN

Das ist mir passiert ist, nachdem ich ein neues Projekt zu einer alten Lösung gegeben. Ich senkte den Zielrahmen den die anderen ‚älteren‘ Projekte entsprechen und der Fehler ging weg.

Klingt wie es passiert jedes Mal die Website dreht sich nach oben (die App jedes Mal, wenn app_code berühren recycelt wird und wahrscheinlich konfiguriert Sie haben IIS die Website nach X Minuten Inaktivität heruntergefahren werden).

Ich wette, es hat etwas mit dem asp.net Worker-Prozess zu tun, auf dem Server nicht die richtigen Zugriffsrechte hat. So ist es versuchen, eine Anordnung zu laden und geleugnet wird.

Überprüfen Sie diesen Link und Tabelle 19.3 für eine Liste aller die Ordner das Arbeitsprozesskonto muss Zugang haben, um zu funktionieren. Und vergessen Sie nicht, dass es Rechte in Ihrem virtuellen Verzeichnis auf alle Dateien und Ordner geben!

Ersetzen Sie Ihre vbproj und vbproj.user Datei aus dem Backup vor, wenn die Referenzen gleich sind

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