2008-12-03 17 views
13

Ich habe versucht, meine ASP.NET MVC-Anwendung vorkompilieren und es in eine IIS6-Box (mit Platzhalter-Mapping) zu implementieren, jedoch bekomme ich einen Fehler beim Rendern partieller Ansichten (Benutzersteuerelemente). Es funktioniert gut auf meiner Dev-Maschine vor dem Vorkompilieren.Kann ich meine ASP.NET MVC-Anwendung vorkompilieren?

Der Fehler ist:

Server Error in '/' Application.

The partial view 'ListGrid' could not
be found. The following locations were
searched:
~/Views/Initiative/ListGrid.aspx
~/Views/Initiative/ListGrid.ascx
~/Views/Shared/ListGrid.aspx
~/Views/Shared/ListGrid.ascx

Ich habe Views \ für die Datei freigegeben und es war nicht da, was ich dachte, war normal, weil seine vorkompilierte. Aber nur für kichert habe ich eine leere Datei in dem Ordner Namen ListGrid.ascx, aber dann habe ich diesen Fehler:

Server Error in '/' Application.

The file '/Views/Shared/ListGrid.ascx'
has not been pre-compiled, and cannot
be requested.

ich gegoogelt und gesucht SO konnte aber keine ähnlichen Probleme finden, hatte aber kein Glück.

+0

Ich fragte eine ähnliche Frage vor einer Weile: http://StackOverflow.com/Questions/108405/How-CanI-Compile-ASP-net-aspx-pages-before-Loading-them-with-a- webserver – Paco

Antwort

3

Obwohl Sie eine MVC-Site vorkompilieren können, sind die Ascx- und Aspx-View-Dateien nicht in der kompilierten DLL, sondern nur die .cs-Dateien. Sie müssen weiterhin die ASPX- und ASCX-Ansichtsdateien bereitstellen.

this helps

+8

Tatsächlich enthält die vorkompilierte Website alles, einschließlich der Ascx- und Aspx-Dateien. Die Originale müssen für die ASP.NET-Laufzeit weiterhin vorhanden sein, um auf sie in binärer Form zugreifen zu können, sie sind jedoch nur Platzhalter und enthalten keinen Inhalt. –

16

Sie können, indem diese in die Post-Build-Aktionen in Projekteigenschaften eine MVC-app vorkompilieren:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -p "$(ProjectDir)." -v /$(ProjectName) 

Das dauert etwas länger als ohne, aber Sie das bekommen Möglichkeit zur Erkennung einiger Fehler, die vor der Bereitstellung zur Laufzeit auftreten.

Die Kompilierung schlägt fehl, wenn in Ihren Ansichten ungültiger Code enthalten ist oder Ansichten fehlen, die diese Methode verwenden.

Verwandte Themen