Ich versuche den Unterschied zwischen inproc und outproc in C# zu finden. Wenn ich eine DLL auf dem Server laufen habe und meine Frage ist, wird es in Inproc und Outproc laufen? Leistungsmäßig welcher Prozess ist besser?Unterschied zwischen inproc und outproc
Antwort
Ein Inproc-Server wird im selben Prozess wie die aufrufende Anwendung ausgeführt. Es ist in der Nähe eines normalen Funktionsaufrufs auf einer DLL. Bei einem Outproc-Server müssen Daten über die Prozessgrenze verteilt werden, was eine teure Operation ist. Ein Inproc-Server ist schnell, kann aber Ihre Anwendung zum Absturz bringen.
Was meinen Sie mit "bringen Sie Ihre Anwendung herunter"? Kannst du genauer sein? Sprechen wir Sitzung oder Protokollierung? Ich sehe nicht, wo das OP angegeben. Wenn Logging, dann nehme ich an, was Sie meinen ist, dass wenn die Protokolloperation fehlschlägt, dann kann es die gesamte App zum Absturz bringen, aber wie ist das anders als out pro? – Sinaesthetic
Ich denke, er meint etwas Ähnliches, wenn der Outproc-Server nicht genügend Arbeitsspeicher hat, wird es abstürzen, aber das Programm selbst wird am Leben bleiben und kann es neu starten. ZB std :: vector ist schnell, benutzt aber den Stack/Heap des Container-Prozesses, und wenn es nicht genügend Speicher hat, stürzt das ganze Programm ab, aber wenn Sie es in einen Outproc-Server einbinden, bleibt das Container-Programm am Leben. – Dmitry
Von MSDN
Sitzungsstatus von ASP.NET unterstützt verschiedene Speicheroptionen für die Sitzungsdaten. Jede Option wird durch einen Wert in der SessionStateMode-Enumeration identifiziert. In der folgenden Liste werden die verfügbaren Sitzungsstatusmodi beschrieben:
InProc-Modus, der den Sitzungsstatus im Arbeitsspeicher auf dem Webserver speichert. Dies ist der Standardwert.
StateServer-Modus/OutProc, der den Sitzungsstatus in einem separaten Prozess namens ASP.NET State Service speichert. Dadurch wird sichergestellt, dass der Sitzungsstatus beibehalten wird, wenn die Webanwendung neu gestartet wird, und der Sitzungsstatus für mehrere Webserver in einer Webfarm verfügbar gemacht wird.
Der SQLServer-Modus speichert den Sitzungsstatus in einer SQL Server-Datenbank. Dadurch wird sichergestellt, dass der Sitzungsstatus beibehalten wird, wenn die Webanwendung neu gestartet wird, und der Sitzungsstatus für mehrere Webserver in einer Webfarm verfügbar gemacht wird.
Benutzerdefinierter Modus, mit dem Sie einen benutzerdefinierten Speicheranbieter angeben können. Aus-Modus, der den Sitzungsstatus deaktiviert.
I * denke * er spricht über COM, nicht ASP.Net Sitzungsstatus. – tzerb
- 1. InProc Sitzungsdaten verschwinden
- 2. Unterschied zwischen Vorzeichen & und *?
- 3. VBA: Unterschied zwischen & und +
- 4. Unterschied zwischen "**/* /" und "** /"?
- 5. Unterschied zwischen $ # und $ {# @}
- 6. Unterschied zwischen = und: =
- 7. Unterschied zwischen '#', '%' und '$'
- 8. MySQL: Unterschied zwischen ', `,' und '
- 9. C++ Unterschied zwischen '//' und '///'
- 10. Unterschied zwischen String.Empty und ""
- 11. Unterschied zwischen `% in%` und `==`
- 12. Unterschied zwischen numpy.logical_and und &
- 13. Unterschied zwischen. und #
- 14. Unterschied zwischen // und http: //
- 15. Unterschied zwischen -Wconversion zwischen gcc und g ++
- 16. Unterschied zwischen Wörterbuch und Hashtable
- 17. Unterschied zwischen FetchMode und FetchType
- 18. Unterschied zwischen Application_Start und Application_OnStart
- 19. Unterschied zwischen Uint8Array und Uint8ClampedArray
- 20. Unterschied zwischen BOOST_CHECK_CLOSE und BOOST_CHECK_CLOSE_FRACTION?
- 21. Unterschied zwischen Suche und Index
- 22. Unterschied zwischen AJAX und Senden
- 23. Unterschied zwischen Spekulation und Vorhersage
- 24. Unterschied zwischen Clojure und Clojurescript?
- 25. Unterschied zwischen NSArray und NSMutableArray
- 26. Unterschied zwischen libcurl und libsoup
- 27. Unterschied zwischen DirectoryCatalog und AssemblyCatalog
- 28. Unterschied zwischen * y ++ und ++ * y?
- 29. Unterschied zwischen SwingWorker und SwingUtilities.invokeLater
- 30. Unterschied zwischen String.scan und String.split
Wow, das ist ein sehr weites Thema, mit viel "kommt drauf an". Ein wichtiger Unterschied ist, dass Code, der in-proc ausgeführt wird, alle anderen Methoden im selben Adressraum aufrufen kann. Wenn es out-proc ist, muss ein Marshalling von Parametern und das Überschreiten von Prozessraumgrenzen stattfinden, was Zeit und CPU kostet. – Richard