Bereitstellen einer ASP.NET MVC-App auf IIS7 und Beibehalten einer sauberen Web.config

Ich möchte meine ASP.NET MVC-Anwendung bei einem Webhosting-Unternehmen bereitstellen (wie DiscountASP.net). Ich bin verwirrt darüber, was in der datei web.config auf dem Webserver sein muss. Wenn ich das Projekt lokal erstelle, erhalte ich eine aufgeblähte web.config mit allen möglichen zusätzlichen Modulen, Handlern, Compilern. Muss ich alle diese Elemente der Datei "production web.config" hinzufügen?

Ich setze immer noch meine aktuelle ASP.NET Anwendung (nicht MVC) in IIS6 und ich habe immer eine einfache web.config für die Produktionsumgebung erstellt und mit den restlichen Anwendungsdateien hochgeladen. Es scheint, als ob ich mit IIS7 den IIS Manager auf dem Webserver verwenden soll, um die web.config zu erstellen. Wie kann web.config auf einem Produktionsserver am besten erstellt/verwaltet werden?

Antwort auf "Bereitstellen einer ASP.NET MVC-App auf IIS7 und Beibehalten einer sauberen Web.config " 4 von antworten

Vielleicht nehmen Sie einen Such-und-Zerstören-Ansatz und Chip weg an der Konfiguration, bis Sie alles entfernt haben, was Sie nicht brauchen. Ohne Ihre Anwendung und ihre Abhängigkeiten zu kennen, ist es schwierig zu sagen, was Sie benötigen oder nicht.

Der beste Ansatz ist, immer eine Entwicklungsumgebung zu haben, die Ihre Produktionsumgebung so genau wie möglich widerspiegelt - Sie wollen Produktionskonfigurationen nicht auf diese Weise bearbeiten.

.Net 3.5 und IIS7 fügen beide ziemlich viel Text zu der web.config hinzu. Was ich tue, ist, den IIS Manager in IIS7 zu verwenden, um die App einmal zu konfigurieren. Dann nehme ich diese modifizierte web.config und checke es wieder in die Quellcodeverwaltung. Auf diese Weise werden alle IIS-Einstellungen bei der Migration zwischen Umgebungen beibehalten.

System.Web.Extensions ist das MS AJAX AKA Atlas-Material, es gibt mehrere Module und Handler und Abschnitte, die dieser Assembly zugeordnet sind. Fühlen Sie sich frei, sie zu entfernen, wenn Sie nicht die MS AJAX Sachen verwenden.

Also hier ist, was ich bisher gefunden habe, um meine MVC-Anwendung auf DiscountASP.net bereitzustellen.

Der erste Gedanke, den ich fand, war, dass ich sicherstellen musste, dass System.Web.Mvc im Bin bereitgestellt wurde, da es nicht im GAC installiert ist:

http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

Dann begann ich mit einer super grundlegenden web.config, die nur die Datenbankverbindungszeichenfolge enthielt. Meine Anwendung hat nicht funktioniert.

Dann kopierte ich das Durcheinander, das mein lokales web.config auf den Server ist und änderte die Datenbankverbindungszeichenfolge und die Dinge begannen zu funktionieren, aber ich bekam immer noch die Fehlermeldung:

Could not load type 'System.Web.Mvc.ViewPage<MyCustomModel>'

Dann fand ich diesen Artikel, der erklärt, wie Sie die web.config ändern müssen, um nicht mit Code hinter Dateien zu unterstützen (Sie müssen dies nicht mit dem lokalen Visual Studio Webserver aus irgendeinem Grund tun) :

http://blog.benhall.me.uk/2009/01/aspnet-mvc-rc1-removing-code-behind.html

Persönlich gefällt es mir nicht, wie einfache Anwendungseinstellungen wie Verbindungszeichenfolgen und SMTP-Einstellungen mit komplexen MVC- (und AJAX.NET) Infrastruktureinstellungen vermischt werden. Eine nette Option wäre, dass das Hosting-Unternehmen (z. B. DiscountASP.net) die Master.config (oder eine übergeordnete web.config) einrichtet, um MVC zu unterstützen, so dass meine web.config nur meine einfachen Anwendungseinstellungen enthalten muss.