2013-07-23 4 views
5

Я пытаюсь найти разницу между inproc и outproc в C#. Если у меня есть DLL, работающая на сервере, и мой вопрос будет ли он работать как inproc, так и outproc? Насколько эффективен процесс?Разница между inproc и outproc

+5

Ничего себе, это очень широкая тема, с большим количеством «это зависит». Важным отличием является то, что код, который работает в proc, может вызывать методы друг друга в одном и том же адресном пространстве. Если это внепроцесс, необходимо выполнить сортировку параметров и пересечение границ технологического пространства, которые требуют времени и процессора. – Richard

ответ

12

Сервер inproc работает в том же процессе, что и вызывающее приложение. Это близко к нормальному вызову функции на dll. При вызове сервера outproc данные должны быть распределены по всей последовательности процессов, что является дорогостоящей операцией. Сервер inproc работает быстро, но это может привести к снижению вашего приложения.

+1

Что вы подразумеваете под «сбивать ваше приложение»? Можете быть более конкретными? Мы говорим о сеансе или регистрируем? Я не вижу, где указано ОП. Если вы регистрируетесь, тогда я предполагаю, что вы имеете в виду, что если операция журнала завершилась неудачно, тогда это может привести к сбою всего приложения, но как это отличается от процесса proc? – Sinaesthetic

+0

Я думаю, что он имеет в виду что-то похожее на то, что на outproc-сервере заканчивается память, он выйдет из строя, но сама программа останется в живых и может перезапустить ее. Например, std :: vector выполняется быстро, но использует стек/кучу процесса контейнера, и если в нем заканчивается память, вся программа сработает, но если вы завернете ее на сервере outproc, контейнерная программа останется в живых. – Dmitry

7

От MSDN

ASP.NET состояние сеанса поддерживает несколько различных вариантов для хранения данных сессии. Каждый параметр идентифицируется значением в перечислении SessionStateMode. В следующем списке описаны доступные режимы состояния сеанса:

InProc mode, в котором хранится состояние сеанса в памяти на веб-сервере. Это значение по умолчанию.

StateServer mode/OutProc, в котором хранится состояние сеанса в отдельном процессе, называемом государственной службой ASP.NET. Это гарантирует, что состояние сеанса сохраняется, если веб-приложение перезапускается, а также делает состояние сеанса доступным для нескольких веб-серверов в веб-ферме.

Режим SQLServer хранит состояние сеанса в базе данных SQL Server. Это гарантирует, что состояние сеанса сохраняется, если веб-приложение перезапускается, а также делает состояние сеанса доступным для нескольких веб-серверов в веб-ферме.

Пользовательский режим, который позволяет указать пользовательского поставщика хранилища. Режим выключения, который отключает состояние сеанса.

+2

Я * думаю * он говорит о COM, а не о состоянии сеанса ASP.Net. – tzerb

 Смежные вопросы

  • Нет связанных вопросов^_^