Ich brauche einen Zähler im Server, der die Anzahl der HTTP-Anfragen enthält. Da jeder Server mehrere Anfragen asynchron (dh derselbe Controller wird von jedem Benutzer aufgerufen) zu einem bestimmten Zeitpunkt verarbeiten kann, wo kann ich Platzieren Sie den Zähler so, dass er zwischen jeder Anfrage geteilt werden kann.Wie funktionieren die Controller in asp.net mvc?
Antwort
Ja, der Controller wird bei jeder Anfrage instanziiert und entsorgt. Ja, jede Anfrage erhält ihren eigenen Thread, obwohl dieser Thread ausgetauscht werden kann (im Falle von asynchronen Arbeiten) oder mehrere Anfragen über die gesamte Lebenszeit abwickeln kann.
Parallelität ist ein komplexes Thema und basiert auf zahlreichen verschiedenen Faktoren zu jeder Zeit. Vereinfacht gesagt, ja, Threads werden parallel ausgeführt. Sie teilen jedoch keine Ressourcen untereinander (zum größten Teil). Letztendlich gibt es einige Ressourcen-Sharing über den Eltern-Prozess, aber für die praktische Anwendung sollten Sie sie als idempotent betrachten.
Basiert auf all dies und Ihre letzte Frage, wenn Sie versuchen, einen Zähler in Ihrem Code zu implementieren, nicht. Es wird nicht funktionieren und wird es nie tun. Selbst wenn Sie eine Art prozessgebundenen thread-sicheren Zähler etwas koordinieren können, funktioniert es nicht mit Arbeitern und es wird jedes Mal getötet, wenn der App-Pool recycelt, abstürzt oder aus irgendeinem Grund neu startet.
Ein Zähler sollte in einer Datenbank oder einem anderen persistenten Datenspeicher implementiert werden. Punkt. Selbst dann müssen Sie äußerst vorsichtig mit der Nebenläufigkeit umgehen, und wenn Sie nicht viel Zeit darauf verwenden, Bots auszuschließen, die Seitenladevorgänge von denselben Benutzern wiederholen usw., wird Ihre Zählung unabhängig von der Art der Zählung ausfallen.
- 1. Wie funktionieren Radiobuttons mit asp.net mvc Bindung
- 2. Wie Controller (ASP.NET MVC 4)
- 3. asp.net mvc generischer Controller
- 4. umbenennen Controller asp.net mvc
- 5. Ausnahmebehandlung in Controller (ASP.NET MVC)
- 6. Controller-Pfad in ASP.NET-MVC
- 7. ASP.NET MVC: Strukturierende Controller
- 8. Gerüste Controller in ASP.NET MVC
- 9. Async-Controller in ASP.NET MVC
- 10. ASP.NET MVC Controller SubFolder
- 11. ASP.NET MVC Teilansicht, die ohne Controller aktualisiert
- 12. Wie kann die Liste von Controller in asp.net mvc anzeigen?
- 13. Wie in MVC-Controller
- 14. ASP.Net MVC-Controller Aktionen, die void zurückgeben
- 15. Wiederverwendung ASP.NET MVC Views & Controller
- 16. asp.net mvc - Ansichten und Controller
- 17. ASP.NET MVC Controller Aktion Autorisierung
- 18. Mocking Asp.net-mvc Controller-Kontext
- 19. Controller für Teilansichten ASP.NET MVC
- 20. ASP.NET MVC 3 _Layout.cshtml Controller
- 21. ASP.NET MVC Controller - Konstruktor Verwendung
- 22. Asp.Net Mvc Controller statischen Konstruktor
- 23. Asp.Net MVC Controller und Ansicht
- 24. Wie ASP.Net MVC-Controller-Aktion Async
- 25. ASP.NET MVC Hinzufügen Controller deaktiviert
- 26. Wie Asp.net Mvc-Controller zu nennen?
- 27. ASP.Net MVC Ajax Controller Anruf
- 28. ASP.NET MVC 6 Controller Factory
- 29. asp.net mvc Wie Controller richtig zu testen
- 30. Wie verbindet ASP.NET MVC Ansichten und Controller?
Warum versuchst du es nicht und findest es heraus? Lernen bedeutet etwas zu tun. Stellen Sie keine Frage, bis Sie feststecken. – mason
Yes.Wenn Sie Daten zwischen mehreren Anfragen teilen möchten, sollten Sie eine Art von persistenten Mechanismus wie Sitzung oder ein Datenbankspeicher oder statisch/Singleton etc. – Shyju
Sie haben vier Fragen in einem. Lies [ask] und versuche zuerst zu suchen und stelle eine Frage pro Frage. – CodeCaster