Meine ASP.NET App_code Veränderungen, die nicht immer abgeholt (bzw. zwischengespeichert werden??)
Hilfe!!!! Ich habe eine single .cs-Datei unter einem (root-Ebene) App_Code-Verzeichnis für den Zweck der abrufen die richtige Vorlage für die angeforderte URL (es wird mit unseren eigenen Content-Management-Datenbank). Anfangs war es wunderbar funktioniert - ich konnte machen, änderungen daran und Sie wurden abgeholt, die von der web-Anwendung OK. Dann ist etwas passiert (keine Ahnung was) und nun, was auch immer änderungen, die ich machen, sind Sie nicht anerkannt. Selbst wenn ich löschen Sie das gesamte Verzeichnis App_Code, dass es keinen Unterschied macht - ich immer noch, scheint zu sein, Kommissionierung bis eine frühere (Cache??) version von dem, was war, in das App_Code-Verzeichnis. Code in der .cs-Datei unter:
using System;
using Custom.CMS.Facade;
using Custom.CMS.BO;
public class CMHttpModule : IHttpModule
{
code here...
}
Tritt das gleiche problem auch nachdem ich Sie kopiert haben, die website für unsere live-server.
Was ich nicht verstehe ist - wenn ich Ihnen einen absichtlichen Fehler auf die .cs-code, bekomme ich noch eine Zusammenstellung der Fehler, und auf eine erfolgreiche Kompilierung ein App_Code.xxxx.dll wird erstellt unter C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Dateien
So, welche version des App_Code ist meine web-Anwendung tatsächlich aufnehmen? Wie mache ich es abholen, die "richtige" ein?
Zur info ich bin mit C#, Visual Web Developer Express 2008 und IIS 6 web-Servers
Jede Hilfe wird dankbar geschätzt.
- Haben Sie versucht, die rechts-Klick-Lösung -> saubere Lösung. Neu erstellen?
- versuchen Sie zum Neustart des iis
- Dank mahesh. Aber IIS neu starten, macht keinen Unterschied.
- Mr. Enttäuschung - Visual Web Developer Express 2008 nicht über eine "Saubere Lösung" - option. Versucht eine nachzubauen, sondern immer verschiedene Fehler, die mir unten mehr Sackgassen. Da ich nicht in der Regel verwenden Sie die "build" - option trotzdem auf unseren Seiten, ich bin sicher, das problem muss woanders liegen?
- hast du es geschafft, eine Lösung zu finden für dieses? Ich habe das gleiche problem!!!
- Ich hatte ein ähnlichen Problem mit silverlight-Anwendungen, die ich erschuf. Ich fand, dass die Erhöhung der AssemblyFileVersion in der AssemblyInfo.cs-Datei behoben mein problem. Inititally dieser sah aus wie ein browser-caching-problem, und es war wirklich verwirrend, um zu bekommen, herausgefunden. Dies kann nicht binden Sie in Ihr problem, da Sie nicht klingen wie Sie sind veröffentlichen Sie Ihre Anwendung, aber ich dachte mir, da Sie immer noch nicht eine Antwort haben, ich würde werfen dies draußen, als ein weiterer Pfeil auf die Dartscheibe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wiedereröffnung der Lösung auch funktioniert.
Können Sie mit der rechten klicken Sie auf die Datei, gehen Sie zu den Eigenschaften und überprüfen Sie die build-Aktion. Es hat 'auf ' Compile'.
Ich bin mir nicht genau sicher, wie Sie Sie veröffentlichen Sie Ihre web-Anwendung, aber es gibt ein paar Dinge, die Sie könnten versuchen:
App_Code
Verzeichnis hat seineBuild Action
eingestelltCompile
Application
RegisterkarteProperties
jedes Projekt. Tun nicht verwenden Sie die Client Profile-Variante.Hoffe, das hilft.
EDIT: hatte Gerade eine plötzliche Gedanke: ist das ASP.NET web-Anwendung, die eigentlich ein Website? Wenn dem so ist, dann ist dein code-änderungen werden möglicherweise nicht erkannt werden, indem die ASP.NET compiler, denn "wenn eine code-Datei wird nicht verwiesen, es wird nicht kompiliert."
Der wesentliche Unterschied zwischen einem ASP.NET web Website vs ASP.NET web Anwendung ist, dass der ehemalige ist in der Regel dynamisch kompiliert (automatisch) von ASP.NET auf dem server das erste mal, wenn eine Anfrage empfangen wird, nachdem die Website installiert wurde oder aktualisiert werden, während die letzteren kompiliert wird vollständig in DLLs, bevor Sie noch veröffentlicht werden. Lesen Sie mehr darüber in den links oben.
Ich hatte das gleiche Problem gestern, und ich es fest machen, dass die Klasse-Bibliotheken Verweise auf die website-Projekt sind auf Ihre Klassenbibliotheken Projekte (nicht die dll ' s im bin-Ordner).
Sieht es aus, weil die website ausgerichtet ist .net 2.0 und die Klassenbibliotheken sind .net 3.5 irgendwie das website-Projekt ignoriert die neu erstellte dll 's und verwendet die in der website-Projekt-Ordner "bin".
@SeanW -
1) Haben Sie versuchen, ändern Sie Ihr Web.Config, anstatt es zu löschen geradezu? Die Web -.Config-Cache, aber jede änderung sollte es zu recyceln Ihre Anwendung Cache.
2) Haben Sie versucht, blies Ihre gesamte Website, und kopieren Sie es aus "from scratch"? (Vor allem sich sicher, zu löschen und erneut kopieren vorkompilierte Dateien, die in Ihr bin-Verzeichnis.)
@Patrick -
1) Haben Sie versucht, löschen Sie alles in Ihrer Temporären ASP.Net Dateien-Verzeichnis?
2) Wenn Sie Revisionen abhängigen Projekte in der Projektmappe (nicht auf dem Start-Projekt), hast du manuell neu erstellen, diese abhängigen Projekte einzeln?
3) haben Sie Zugriff auf die wiederverwertung der App Pool für Ihre live-Website in IIS?
4) Haben Sie versucht, Kopierens, Ihre live-web-site von Grund auf neu oder ändern Sie die Web.Config in Ihrer live-Website?
Allgemeinen App-Cache-Tipps -
Können Sie oft aktualisieren Sie Ihren Application Cache, indem Sie eine triviale Version auf der Web.Config-Datei.
Diskutiert, wie in dieser thread, Global.asax verpasst, bin-Verzeichnis ändert, und App_Code änderungen kann auch eine Regenerierung auslösen des Anwendungspools.
Als eine langfristige Lösung, möchten Sie vielleicht für Ihre Anwendung zu verwalten-Cache durch eine Datei Abhängigkeit oder SQLCacheDependency-Klasse. (Obwohl, der Letzte Vorschlag funktioniert möglicherweise nicht auf shared-hosting-Websites wie GoDaddy.)
ASP.NET Web-Anwendung hat einige fallen. Neuladen des Projekts ist ein Weg, um zu beheben einige Probleme...
Seltsam genug, in der Tat (call me Fehler)!
Ich persönlich bevorzuge ASP.Net Web-Seiten (anstelle von Anwendungen) mit Die JIT-Kompilierung Funktion.
FMO, es ist schneller, leichter und einfacher Weise zu erhalten, eine prj.