Diferența dintre inproc și outproc [închis] (Programare, C#, Inproc)

manjuvreddy a intrebat.

Încerc să găsesc diferența dintre inproc și outproc în c#. Dacă am un dll care rulează pe server și întrebarea mea este dacă va rula atât în inproc, cât și în outproc? Din punct de vedere al performanței care proces este mai bun?

Comentarii

  • Wow, acesta este un subiect foarte larg, cu multe „depinde”. O diferență importantă este că codul care rulează in-proc poate apela metodele celorlalți în același spațiu de adrese. În cazul în care este out-proc, trebuie să se facă marshalling-ul parametrilor și să se traverseze limitele spațiului de proces, ceea ce costă timp și cpu. –  > Por Richard.
2 răspunsuri
tzerb

Un server inproc rulează în același proces cu aplicația apelantă. Este aproape de un apel normal de funcție pe un dll. Apelând un server outproc, datele trebuie să fie marshalate peste granița de proces, ceea ce este o operațiune costisitoare. Un server inproc este rapid, dar poate duce la căderea aplicației dumneavoastră.

Comentarii

  • Ce vrei să spui prin „a vă distruge aplicația”? Puteți fi mai precis? Vorbim de sesiune sau de logare? Nu văd unde a specificat OP. Dacă este vorba de logare, presupun că vă referiți la faptul că, dacă operațiunea de logare eșuează, atunci se poate prăbuși întreaga aplicație, dar cu ce diferă asta de outproc? –  > Por Sinaesthetic.
  • Cred că vrea să spună ceva similar cu dacă serverul outproc rămâne fără memorie, acesta se va bloca, dar programul în sine va rămâne în viață și poate fi repornit. De exemplu, std::vector este rapid, dar folosește stiva/heap-ul procesului container, iar dacă rămâne fără memorie, întregul program se blochează, dar dacă îl înfășurați într-un server outproc, programul container rămâne în viață. –  > Por Dmitry.
Ehsan

De la MSDN

Starea sesiunii ASP.NET suportă mai multe opțiuni de stocare diferite pentru datele sesiunii. Fiecare opțiune este identificată de o valoare în enumerarea SessionStateMode. Următoarea listă descrie modurile de stare a sesiunii disponibile:

Mod InProc, , care stochează starea sesiunii în memorie pe serverul Web. Acesta este modul implicit.

StateServer mode/OutProc (Modul StateServer/OutProc), , care stochează starea sesiunii într-un proces separat numit serviciu de stare ASP.NET. Acest lucru asigură păstrarea stării sesiunii în cazul în care aplicația Web este repornită și, de asemenea, face ca starea sesiunii să fie disponibilă pentru mai multe servere Web dintr-o fermă Web.

Modul SQLServer stochează starea sesiunii într-o bază de date SQL Server. Astfel, se asigură că starea sesiunii este păstrată în cazul în care aplicația Web este repornită și, de asemenea, face ca starea sesiunii să fie disponibilă pentru mai multe servere Web dintr-o fermă Web.

Mod personalizat, , care vă permite să specificați un furnizor de stocare personalizat. modul Off, care dezactivează starea sesiunii.

Comentarii

  • I cred că că se referă la COM, nu la starea sesiunii ASP.Net. –  > Por tzerb.

Tags:,