ASP.NET korrupte assembly "Konnte nicht geladen, Datei oder assembly App_Web_*"
Ich habe gelesen durch viele andere Fragen gepostet zum gleichen Thema, aber ich verstehe immer noch nicht die Ursache und wie Sie zu verhindern.
In meinem Fall, geschieht dies auf der Produktions-server. Ich bekomme den gleichen Fehler, der beschrieben wurde in anderen Fragen, und ich löse es durch re-kopieren Sie die Assembly in das bin-Verzeichnis. Sie sind nicht einmal neu kompiliert-Dateien, Sie sind die gleichen, die es gab, in der es vor - kopiert wieder, und dann beginnt es zu arbeiten, ohne Probleme.
Dem seltsamen Teil ist, dass ich mich mit Web-Entwicklung Projekte umbenennen alle meine assembly-Dateien in Ordner-basierte dll. So folder.dll und folder.subfolder.dll statt App_Web_jt8nxllz.dll. Doch die Fehler sind immer noch die Namen der ursprünglichen App_Web_jt8nxllz.dll Datei.
Löschen Sie den Inhalt der C:\WINDOWS\Microsoft.NET\Framework[64]\v...\Temporary ASP.NET Files
Ordner funktioniert und ist alles in Ordnung, aber wer weiß, wie um zu verhindern, dass dieser Fehler passiert? Auch das Herunterfahren IIS oder neu zu starten ist wirklich nicht so machbar, wenn es passiert, die auf den Produktions-server. Vielleicht Reinigung der Temp Ordner auf einem scheduler automatisch?
Was ist das eigentliche Problem hier? Gibt es etwas bestimmtes, verursacht dies geschehen? Die Website Brummen entlang überhaupt kein problem, und dann, ganz plötzlich, einen gesamten Ordner nicht mehr funktioniert und produziert diesen Fehler.
Could not load file or assembly 'App_Web_jt8nxllz, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Exception type 'System.IO.FileNotFoundException' was caught.
Source: App_Web_whv5zsvd
Target Site: Void __BuildControlTree(ASP.artists_controls_artistheader_ascx)
Stack Trace:
at ASP.artists_controls_artistheader_ascx.__BuildControlTree(artists_controls_artistheader_ascx __ctrl)
at ASP.artists_controls_artistheader_ascx.FrameworkInitialize()
at System.Web.UI.UserControl.InitializeAsUserControlInternal()
at System.Web.UI.UserControl.InitializeAsUserControl(Page page)
at ASP._artists_artist_master.__BuildControlctlArtistHeader()
at ASP._artists_artist_master.__BuildControlctlContent(Control __ctrl)
at System.Web.UI.CompiledTemplateBuilder.InstantiateIn(Control container)
at ASP.master_mysite_master.__BuildControlMainContent()
at ASP.master_mysite_master.__BuildControlform1()
at ASP.master_mysite_master.__BuildControlBody()
at ASP.master_mysite_master.__BuildControlTree(master_mysite_master __ctrl)
at ASP.master_mysite_master.FrameworkInitialize()
at System.Web.UI.UserControl.InitializeAsUserControlInternal()
at System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection)
at System.Web.UI.MasterPage.get_Master()
at System.Web.UI.MasterPage.ApplyMasterRecursive(MasterPage master, IList appliedMasterFilePaths)
at System.Web.UI.Page.ApplyMasterPage()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InformationsquelleAutor MaseBase | 2009-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht nur link meine Website, aber ich habe dieses Problem und ich schrieb ein blog-post zum Thema. Check it out, es links zu mehr Infos zu diesem Thema. Aber um es zusammenzufassen, hier sind die details:
Problem:
Die website wirft einen Fehler versucht zu laden benutzerdefinierter web-Kontrolle. Sie sehen in der letzten Version, die wir Hinzugefügt eine neue custom control zu einer anderen benutzerdefinierten web-Steuerung wird angezeigt, wie benötigt werden. Da die äußeren die meisten/übergeordnete Kontrolle und die neue untergeordnete Steuerelement separate regler in der Quelle, wenn die .Net Framework geht zu kompilieren eines von diesen beiden Steuerelementen und nicht neu kompilieren, der andere in der gleichen Zeit, haben Sie eine out-of-date Datei, die Sie versuchen zu Referenz der alten version der assembly. Die Tatsache, dass die .Net framework fügt eine zufällige Zeichenfolge an den Namen der assembly, bei der Kompilierung der name der neu erstellten Datei und die Vorherige version der Datei zu einem file-Namen nicht übereinstimmen und daher von außen/von der übergeordneten Steuerung ist auf der Suche nach einer Datei, die nicht mehr existiert.
Möglich Arbeiten, Um(s) oder Temporary Fixes:
1), Indem Sie die batch-Eigenschaft der compilation-Tags auf false in der web.config-Datei
2) Sie können auch verringern, wie oft es geschieht, indem die Einstellung durch die
numRecompileBeforeAppRestart
Eigenschaft:Sehen die KB-Artikel 934839 für mehr details
Fixes für das Problem, nachdem es bereits stattgefunden:
1) temp Löschen ASP.Net Dateien (das dauert die Seite)
2) Kraft der Eltern/outter control zu kompilieren, Bearbeiten und speichern Sie die code-Datei. Dies ist eine bessere option für ein Update als #1, weil diese nicht bringen auf der website.
Mein Vorschlag:
1) Zuerst denke ich, wir sollten die temporären fix #1 von oben, dies könnte verhindern, dass alle Probleme in der Zukunft und könnte die einzige Antwort, die wir brauchen.
2) die Zweite würde ich downloaden und installieren Sie die 934839 hotfix von Microsoft in der QA-Umgebung, um zu überprüfen, dass es keine Probleme verursacht. Nach einiger Zeit des testen Sie den hotfix in der QS würde ich den hotfix installiert haben, um eine dauerhafte Lösung für dieses Problem. In dieser Zeit könnten wir entfernen der temporären Arbeit rund um #1.
Hinweis:
Nachdem wir die Temp-fix #1 ich habe nicht wieder das problem gehabt. Ich habe dieses fix in Platz für mehr als 12 Monate und alles ist gut!
InformationsquelleAutor YetAnotherDeveloper
Ich habe Treffer mit dieser, es ist ein hotfix für.
http://weblogs.asp.net/scottgu/archive/2007/04/11/public-hotfix-patch-available-for-asp-net-compilation-issues.aspx
Obwohl es nicht geschehen, mit neueren Maschinen/setups mehr.
InformationsquelleAutor Chad Grant
Dem löschen der temp-Dateien oder das ändern von web.config hat bei mir nicht funktioniert. Für mich, was es behoben wurde, Neustart mein computer.
InformationsquelleAutor mbomb007