2012-06-19 8 views
18

Robię badania nad opracowywaniem aplikacji bezpiecznych dla wątków. Wiem, że użytkownicy mogą używać wielu wątków w tej samej aplikacji (jeśli procesor działa z więcej niż jednym wątkiem), ale nie jestem pewien, co się dzieje i w jaki sposób usługi IIS obsługują użytkowników, gdy na przykład ma 5 użytkowników korzystających z tej samej aplikacji.Czy usługi IIS nadają każdemu podłączonemu użytkownikowi wątek?

Co robi IIS, czy wszyscy użytkownicy pracują nad tym samym wątkiem? czy na przykład mają one wątek?

Jestem nowicjuszem, jeśli chodzi o IIS, więc proszę o zachowanie mnie. Moje pytanie pomoże mi zrozumieć, czy potrzebuję zablokować publiczne metody statyczne w moim kodzie (gdzie ważne jest bezpieczeństwo wątków).

+0

http://msdn.microsoft.com/en-us/library/ms525101(v=VS.90).aspx –

Odpowiedz

9

Oto dobra wiadomość na początek - ASP.NET Thread Usage on IIS 7.5, IIS 7.0, and IIS 6.0. Ważna rzecz, o której powinieneś pamiętać - IIS nie będzie tworzyć wątków dla użytkowników, utworzy wątki dla równoczesnych połączeń. Oczywiście powinieneś tworzyć bezpieczne statycznie metody wątku, jeśli nie są one czyste.

+1

Nie zapomnij o stanie sesji może powodować jednoczesne wywołania od tego samego użytkownika do serializacji. –

+0

oznacza to, że trwałe struktury połączeń, takie jak [SignalR] (http://signalr.net), będą blokować jeden wątek dla każdego podłączonego użytkownika? –

+0

to dobry link – PeteH

4

Użytkownik (lub, ściśle rzecz biorąc, może) sesja, ale niekoniecznie wątek im poświęcona. Jeśli o tym pomyślisz, byłoby to szalenie nieefektywne.

Proponuję, abyś zaczął czytać o sesjach, a nie wątkach, jeśli chcesz poznać sposób działania iis.

+0

Mogę to powiedzieć; każdy użytkownik otrzymuje sesję, a każda sesja może w razie potrzeby wykorzystywać wątek (lub wiele wątków). Czy to jest poprawne? –

+3

To prawda, ale nie tak naprawdę cały obraz. Punkt, który próbuję wprowadzić w mojej oryginalnej odpowiedzi, to fakt, że dla jednego użytkownika składają oni wniosek, a strona internetowa generuje odpowiedź. Oczywiście do obsługi tego żądania wymagany jest pewien wątek. Ale kiedy reakcja zostanie zakończona, co stanie się z wątkiem? Nie ogranicza się tylko do tego, że użytkownik złoży kolejną prośbę. Jest ponownie wykorzystywany przez IIS do obsługi zgłoszeń od innych osób. Stroną "sesji" jest to, jak iis rozpoznaje powracającego użytkownika (bez utrzymywania wątków dla nich). – PeteH

+0

Oznacza to również, że 2 sesje (po 1 dla każdego użytkownika) nigdy nie będą sprzeczne, jeśli nie zaimplementowano żadnego wielowątkowości w kodzie –

Powiązane problemy