Wie funktioniert das Ausführen von ASP.Net unter Linux mit der standardmäßigen Microsoft-zentrierten Lösung?

8

Ich weiß, dass es möglich ist, eine ASP.Net-Site unter Linux mit Mono und Apache , aber ich würde gerne wissen, wie gut es funktioniert und ob es die Mühe wert ist? Ich bevorzuge Open Source, aber für dieses Projekt möchte ich die schnellste, einfachste und zuverlässigste Lösung.

Die Seite, die ich erstellen werde, ist eine recht einfache ASP.Net-Site, die MySQL verwendet.

Ich würde gerne wissen, ob irgendjemand andere Erfahrung mit Mono in einer Situation wie meiner hat und wie das Projekt lief. Wie ist es mit der Verwendung einer Microsoft-zentrierten Lösung verglichen worden?

Ich weiß Mono ist immer noch etwas unvollständig, aber ich hoffe, dass ich die fehlenden Features nicht brauche.

Diese Frage mag ein wenig "polarisierend" sein. Die meisten ähnlichen Fragen scheinen Antworten von Leuten zu haben, die entweder sehr Microsoft oder Pro-Linux sind. Ich hoffe auf unvoreingenommene Antworten, vorzugsweise von Leuten mit Erfahrung, die beide benutzen.

    
ks78 19.01.2011, 16:55
quelle

3 Antworten

9

Ich habe vor anderthalb Jahren von MS-zentrierten Lösungen gewechselt und jetzt hosste ich alle meine Webseiten und Webprojekte auf Linux / Mono / Apache / MySQL basierten virtuellen Servern (ich benutzte ursprünglich nginx statt Apache) , aber mono-fastcgi-server verursachte zufällig thrashing , also wähle ich Apache als Webserver). Ich kann meine (subjektive) Erfahrung mit dieser Konfiguration in einige Punkte zusammenfassen:

  • Es kann einige Zeit dauern, um sich an die Unterschiede zwischen Linux- und MS-basierten Umgebungen zu gewöhnen (wenn Sie noch nie Linux benutzt haben), aber ich bereue diese Entscheidung nicht. Was mir sehr geholfen hat, war die Erstellung von Installations- und Konfigurationsverfahren für bestimmte Technologien (z. B. mono-parallele Umgebungen, virtuelle Apache-Hostkonfigurationen, die sich mit bestimmten Problemen befassen), die größtenteils wiederholbar und automatisierbar sind.

  • Sie können Visual Studio weiterhin zum Entwickeln Ihrer Anwendungen und zum anschließenden Bereitstellen auf einem Linux-Computer verwenden. Wenn Sie diesen Ansatz verwenden, ist es eine gute Angewohnheit, Ihre Apps regelmäßig auf Mono zu testen, um mögliche Inkompatibilitäten zu vermeiden.

  • Ich stelle Webanwendungen über FTP bereit, was wahrscheinlich der einfachste Weg ist (vielleicht ist WinSCP sogar noch einfacher, weil Sie keinen FTP-Server einrichten müssen, aber das hängt von Ihren Einstellungen ab) / p>

  • Bisher bin ich in zwei Fällen mit Mono / Apache gelandet, bei denen ein Speicherleck die Nichtverfügbarkeit der Website verursacht hat. Dies wurde wahrscheinlich von Boehm Garbage Collector verursacht, den ich auf alten Mono-Installationen verwendete. Ich hatte keine ähnlichen Probleme mit einem neuen sgen GC auf neueren Versionen von Mono.

  • Am meisten mag ich mono, die auf einer Linux-Umgebung laufen, im Vergleich zu MS-Sachen, dass Sie nicht ständig herumklicken müssen, wenn Sie administrative Aufgaben erledigen. Shell ist für mich eine einheitliche Verwaltungsoberfläche, die Dinge beschleunigen kann (wenn Sie etwas Übung haben).

yojimbo87 19.01.2011, 18:27
quelle
4

Hosting von ASP.NET auf Mono aus meiner Erfahrung ist ziemlich einfach und schnell. Ich habe mehrere meiner Projekte mit Mono ASP.NET MVC 1/2 unter Verwendung von MySQL und PostgreSQL hosten, die von Apache mod_mono bedient werden.

Im Vergleich zur Bereitstellung unter Windows Server. Es ist recht eng, wenn moderne Linux-Distribution verwendet wird, die bereits alle Pakete für die Bereitstellung von Mono-ASP.NET bereitstellt. Der einzige Nachteil ist, dass Sie sicherstellen müssen, dass Ihre Web-Anwendung portabel genug ist, um IO-Zugriff zu ermöglichen und nur eine sehr kurze Lernkurve und Erfahrung benötigt, um Ihr Projekt zu debuggen und zu veröffentlichen.

Für die Bereitstellung unseres Projekts unter Linux. Es ist einfach mit Versionskontrolle (VS) wie Mercurial oder Git, wenn Sie die volle Kontrolle über den Server haben. Wenn Sie mehr Erfahrung mit der kontinuierlichen Integration haben, ist es besser. Ich benutze hauptsächlich Mercurial, so dass Schritt nach unten ist der Schritt, den ich normalerweise tun, aber ich denke, es ist fast ähnlich für Git:

  • Installieren Sie mercurial und konfigurieren Sie mod_wsgi, hgweb.wsgi und hgwerb.config
  • Init VS repo und veröffentliche es unter hgweb.config und konfiguriere hook, um xbuild zu aktualisieren und aufzurufen, um automatisch zu erstellen, wenn du es drückst
  • Veröffentlichen Sie den Repo (Webpart) als Mono-Anwendung unter mod_mono.conf
  • Sie müssen also nur im Visual Studio programmieren, Ihre Änderungen mit tortoiseHg committen und pushen, ohne sich am Server anmelden zu müssen (legen Sie die Repo-URL, den Benutzer und das Passwort in Ihrem Repo-hgrc fest)
Anton Hasan 19.01.2011 17:22
quelle
-2

Bitte beachten Sie, dass Sie zwar ASP unter Linux über Dinge wie Mono bereitstellen können, aber wenn Sie eine Microsoft-Idee wie Visual Studio, Webmatrix oder Visual Web Developer verwenden, können Sie diese nur auf Microsoft-Servern bereitstellen!

    
Taffy Dog 03.01.2012 10:55
quelle

Tags und Links