2008-09-19 9 views
50

Ich habe festgestellt, dass ich in einigen Fällen die Quelle während des Debuggens bearbeiten kann. Gibt es weitere Vorteile der Verwendung des integrierten Webservers von Visual Studio anstelle eines virtuellen Verzeichnisses in IIS?Was sind die Vorteile von Cassini anstelle von IIS?

Ich verwende Windows XP in meiner Entwicklungsumgebung und eine lokale Instanz von IIS 5. Ich arbeite an mehreren Projekten, also verwende ich mehrere virtuelle Verzeichnisse, um alle verschiedenen Standorte zu verwalten.

Gibt es irgendwelche Nachteile?

Antwort

57

Der eingebaute Web-Server für Visual Studio wird Cassini genannt und sind hier einige seiner Grenzen ...

  • Es kann pro Port nur eine ASP.NET Anwendung hosten.
  • Es unterstützt HTTPS nicht.
  • Es unterstützt keine Authentifizierung.
  • Es reagiert nur auf localhost Anfragen.
  • langsamen Start im Vergleich zu IIS
+0

Korrigierte Zeilenumbrüche und erhöhte die HTTPS- und Authentifizierungsbemerkungen (separate Antworten hätten zwei Stimmen). –

+2

LOL, ich reparierte sie auch :) – pdavis

+0

"Es reagiert nur auf Anfragen von localhost" ... kann nicht genug betonen! Das macht es ziemlich nutzlos für echte Web-Serving – mcjabberz

1

Wenn Sie mit XP Home zu Hause arbeiten, können Sie IIS nicht lokal installieren.

+2

Ich denke, das MS Web Platform Installer entfernt diese Einschränkung (ich konnte IIS auf Vista Home installieren) –

+2

@Dan Finch Vista Home kann IIS ausführen. XP Home kann nicht. –

0

Installieren Sie IISAdmin, und Sie können separate Sites in IIS 5 einrichten, anstatt virtuelle Verzeichnisse zu verwenden.

+0

Obwohl nur eine nach der anderen ausgeführt wird. –

+0

das ist ein großer Nachteil und einfach nicht realistisch - benutze einfach IIS und du kannst machen was du willst, egal was läuft. – PositiveGuy

5

Der integrierte Server funktioniert gut für größere Unternehmen, die Entwicklern keinen Administratorzugriff auf ihren eigenen Computern zum Konfigurieren von IIS gewähren möchten.

+2

Es tut mir leid, aber warum zur Hölle würde ein Unternehmen (jede Größe) das für einen Entwickler tun wollen. Das ist blöd.Halten Sie uns davon ab, native Tools zu verwenden, die jeder Entwickler kennen muss - in diesem Fall verstehen und lernen Sie IIS besser kennen, was wesentlich ist und Ihnen hilft, ein besserer Webentwickler zu sein. Wenn Sie IIS gut kennen, sparen Sie stundenlanges Debuggen Web-Apps. – PositiveGuy

+0

@CoffeeAddict Ich arbeite bei einer dieser Firmen. Ich kann sehen, wie Unternehmenssicherheit denkt, dass es eine großartige Idee ist, aber als Entwickler kommt es mir wirklich in die Quere. Glücklicherweise erlauben sie Ausnahmen für Entwickler, die bereit sind, genug Ringe durchzulaufen (ich gehe immer durch diese Reifen). – Zarepheth

1

Der eingebaute Server ist nicht so konfigurierbar und er läuft auf einem ungeraden Port. Wenn Sie also auf ein bestimmtes Verhalten zählen, kann das problematisch sein.

+2

Es ist möglich, den Port in VS zu konfigurieren. Projekt-> Eigenschaften-> Spezifischer Port – pdavis

-1

Wenn Ihr Projekt in der IIS-Verzeichnis befindet Sie noch Code bearbeiten können, hängt nur davon, ob es oder nicht veröffentlicht worden ist. Sie werden auf Cassini vs IIS Probleme bekommen, wenn Sie bestimmte berechtigungsbasierte Szenarien debuggen, wie Kerberos und ntlm Authentifizierung sowie Probleme wie Serverkomprimierung usw. Alles in allem ist der Cassini immer noch in Ordnung, aber Sie sollten es machen Umfangreiche Tests bei der Veröffentlichung in IIS.

+0

Warum später testen, wenn Sie die ganze Zeit in IIS testen können, was ist wirklich Ihren Code für alle ASP.NET sowieso laufen zu lassen? nur so können Sie jedes Mal 2 Sekunden sparen, wenn Sie debuggen möchten? Kein guter Kompromiss ... Sie sparen mehr Ärger und lernen am Ende mehr, wenn Sie den IIS-Zeitraum verwenden. – PositiveGuy

2

Wenn Sie die URL für Web-Services auf dem integrierten Webserver "referenzieren", kann sich der Port ändern. Es sei denn, Sie haben einen "Spezifischen Port" auf der Seite Projekt-> Eigenschaften festgelegt.

Das ist etwas, an das ich mich jetzt gewöhnt habe. Ich habe immer einen bestimmten Port eingestellt. Wenn jetzt manchmal der Webserver abstürzt (ich hatte das schon), ändere ich einfach die Portnummer, und alles ist gut. Ich denke, dass ein Neustart auch das beheben wird.

+0

Schmerz in den Arsch, benutze IIS. – PositiveGuy

2

Der integrierte Server bedeutet, dass der Entwickler nicht wissen muss, wie IIS zum Testen seiner Site eingerichtet wird.

Sie könnten argumentieren, dass dies ein Nachteil ist, und dass ein Windows-Entwickler mindestens so viel IIS wissen sollte. Oder Sie könnten argumentieren, dass ein Entwickler, der kein Systemadministrator ist, sich nicht mit dem Webserver herumärgern sollte.

+0

RIESIGE Nachteil. Sie sollten IIS kennen ... es ist wichtig für Ihre Arbeit. Stimme völlig zu. Das ist der Grund, warum unser Beruf so blöde Entwickler hat ... weil wir uns auf Blackbox-Mist wie Cassini verlassen, anstatt echten Code zu lernen oder in diesem Fall auf einen echten Webserver (IIS), auf dem .NET für das Web läuft. Warum sollten Sie in diesem Fall etwas anderes als IIS verwenden? Ich wünschte, MS wäre nie mit diesem dummen Seitenschritt "leichter" Mist aufgefallen, wie sie es immer tun ... es enttäuscht uns nur als Profis, indem er uns dümmer macht. – PositiveGuy

0

Der integrierte Webserver ist ein wenig weniger robust als IIS, erfordert aber keine Einrichtung, so dass es nur ein Kompromiss ist.

Sie möchten nicht immer, dass Ihre Entwicklungsprojekte auf Ihrem IIS-Server (sogar auf Ihrem lokalen IIS-Server) verfügbar gemacht werden, sodass der integrierte Server dafür geeignet ist.

Wenn Ihre Anwendung jedoch auf Ressourcen außerhalb der Norm für eine Webanwendung zugreifen möchte, sollten Sie häufig in IIS debuggen, sodass Ihre App mit eingeschränkten Berechtigungen ausgeführt wird und Sie sehen können, wo die Schwachstellen liegen .

5

Der Visual Studio-Webserver ist weniger vergeblich über // im Pfad.

Es wird abgelehnt, einen Link wie: http://localhost:52632/main//images/logo.jpg, wo IIS tun wird, zu dienen.

Das ist ziemlich obskur aber bedeutet, wir haben eine Menge zu beheben, um alle // Vorkommnisse loszuwerden.

2

Cassini unterstützt auch keine klassischen ASP-Seiten. Dies ist nur ein Problem für ältere Projekte, in denen noch alte ASP-Seiten existieren (wie unsere Web-App bei der Arbeit).

+0

wer kümmert sich um klassische asp ... sie sollten jetzt konvertiert werden. – PositiveGuy

+1

@CoffeeAddict: Sie würden überrascht sein. Die Hälfte der Unternehmen in San Francisco arbeiten mit Infrastruktur-Apps, die in den 90er Jahren gebaut wurden und seither nicht mehr aktualisiert wurden. –

3
  • Sie müssen laufen Visual Studio, um es zu verwenden (unter normalen Umständen)

  • Es reagiert nur auf localhost so kippen Sie auf dem Link http://simon-laptop:37473/app1 an einen Freund geben Sie Ihre Website über das Netzwerk anzuzeigen

  • Große Nachteil: es ist schwieriger, funktioniert zu bekommen, weil localhost Verkehr nicht über den Proxy gesendet wird.

Edit:http://ipv4.fiddler:37473 ist der beste Weg Fiddler mit ihm arbeiten zu erhalten.

+1

Sie können Fiddler in den lokalen Verkehr beobachten, indem Sie einen Punkt vor dem Doppelpunkt und Port auf Ihrer URL .. Beispiel http://localhost.:1234/MyApp Oder mit dem Fiddler Passthrough http: //ipv4.fiddler : 1234 –

+1

Eigentlich können Sie es über die Befehlszeile ausführen, so dass Sie Visual Studio nicht ausführen müssen. –

1

Ich nehme oft das Beste aus beiden Welten und erstelle eine Anwendung in IIS, und verwende den eingebauten Webserver für ein effizienteres Debugging.

1

Cassini ist ein leichter Test Webserver. Die Idee ist, dass ein Entwickler IIS nicht installieren und konfigurieren muss, um seine Anwendung zu testen. Verwenden Sie IIS, wenn Sie damit vertraut sind, und Sie haben es eingerichtet und Ihre Box kann es handhaben. Cassini ist kein Ersatz.

+0

vielen Dank. KEINE ERSATZPERSONEN. – PositiveGuy

0

Wir haben auch einige Probleme mit dem integrierten VS-Server hinsichtlich einiger Steuerelemente von Drittanbietern festgestellt, die ihre Skripts in den Ordner \ aspnet_client stellen. Da der Ordner nicht vorhanden ist, wenn Sie nicht unter IIS ausgeführt werden, funktionierten die Steuerelemente nicht. Es scheint viel einfacher zu sein, immer mit IIS zu arbeiten und seltsame Probleme zu vermeiden.

16

Alle vorherigen Antworten sind gute Antworten - hier ist eine Gottcha mit Cassini, die IIS auf dem Desktop benötigen könnte.

Cassini läuft im Kontext des Entwicklers, nicht als der IIS-Benutzer (IUSR_, IWAM oder in WinXP x64, der w3wp-Prozess). Dies kann ein wenig schmerzhaft sein, wenn Sie eine Website haben, die auf externe Dateien zugreift oder temporäre Dateien erstellt. Es ist am offensichtlichsten, wenn Ihr Entwickler als Administrator seines Desktops ausgeführt wird.

Wenn Sie zum Server IIS wechseln, funktioniert etwas, auf das Sie in Cassini Zugriff gehabt hätten, nicht gleich. CACLing mit dem IIS_WPG reicht normalerweise aus, um es zu beheben, aber wenn Ihr Entwickler nicht darüber nachdenkt, wird er schnell frustriert sein.

9

Cassini bietet keine Unterstützung für virtuelle Verzeichnisse

0

Ein Unterschied, den ich gefunden habe, ist, dass die Entwicklung Server verarbeitet Dateien anders als das Hochladen von IIS funktioniert. Sie können den Fehler nicht abfangen, wenn die hochgeladene Datei größer ist als Ihre Max_File_Size-Einstellung. Die Seite stirbt einfach und gibt eine 500 zurück.

5

Ein weiterer Nachteil, auf den ich gestoßen bin, ist auf einer authentifizierten Forms-Website mit benutzerdefinierten IPrincipal/IIdentity. Cassini wird die AppDomains ohne Warnung (oder Hinweis) wechseln.

Überprüfen Sie diese blog post für mehr. Die Kopfschmerzen auf diese ließ mich Cassini fallen und bleiben mit IIS.

2

Sie kann nicht virtuelle Verzeichnisse verwenden :(

1

Wenn Sie IIS in Vista oder Windows 7 mit UAC aktiviert haben, müssen Sie Visual Studio mit Administratorrechten ausgeführt werden. Wenn Sie dies tun, können Sie nicht einen Tropfen ziehen aus Ihre Shell zu Visual Studio (auch wenn Sie eine Instanz von explorer.exe als Administrator ausführen).

aus diesem Grund ich Cassini verwenden für die meisten Projekte.

+1

vielleicht sollte jemand eine neue Frage starten "Was sind die (Un) Vorteile der Verwendung von Cassini anstelle von IIS unter Vista/Win7?" weil das ist ein Spiel Changer, dh auf XP die beste Wahl ist IIS, aber es ist nicht so klar von der Wahl auf Win7 –

0

ein weiterer dis-Vorteil ist, dass es jede Anfrage über die Sends Globale Asax-Datei, die alle Anfragen für Bilder und Stylesheets enthält, das heißt, wenn Sie Code haben, der tut Dinge mit den Dateinamen, wie ein Nachschlagen, dann werden auch die Hilfsdateien verarbeitet.

1

FYI, Windows XP 64-Bit kommt mit IIS 6.

7

Sieht aus wie eine dritte Option kommt bald: IIS Express.

1

Dies ist ein alter Thread vor 2 Jahren gestartet. Ich bin gerade beim googeln auf UtilDev Cassini gestoßen. Sieht vielversprechend für mich aus. Zumindest hat es die Fähigkeit, mehrere Websites gleichzeitig zu betreiben. Diese Funktion ist sehr nützlich für mich, da ich auf zwei verschiedenen Seiten arbeite und ständig zwischen ihnen mit IIS wechseln muss.

+1

Mann einfach IIS verwenden und weitermachen. Lern es. – PositiveGuy

1

Hier ist ein Grund für einen dritten Weg: obwohl UWS Pro wahrscheinlich näher als Cassini IIS (obwohl von Cassini inspiriert und ist vom Hersteller der UltiDev Cassini Gabel), ist ihr Hauptzweck redistributable zusammen mit ASP.NET zu sein Anwendungen. enter image description here

+2

verwenden Sie einfach IIS, warum noch etwas anderes verwenden. – PositiveGuy

0

Auch über IIS müssen Sie sich keine Gedanken über das automatische Erinnern und Festlegen einer dummen Portnummer in Ihrer localhost-URL machen. Das ist etwas, auf das sich Funky direkt mit Cassini verlassen hat ... großer Schmerz in den Arsch. Wer möchte sich an eine beliebige Portnummer erinnern? Einfach die verdammte Seite in IIS laufen ... einfach und einfach.

Verwandte Themen