В PL / SQL глобальная переменная может существовать только в пакете. Это потому, что PL / SQL инициализирует переменные уровня процедуры каждый раз, когда вызывается процедура. Только пакет позволяет нам определять переменную вне области действия процедуры.
Этот пакет игрушек будет сохранять значение n
при нескольких вызовах на gvar_test.incr()
.
create or replace package gvar_test as
procedure incr (p_in in number, p_out out number);
end gvar_test;
/
create or replace package body gvar_test as
n pls_integer;
procedure incr (p_in in number, p_out out number) is
begin
n := n + p_in;
p_out := n;
end incr;
begin
-- initialise variable first time package is called
n := 0;
end gvar_test;
/
Глобальные переменные - сложная вещь. Многие люди считают их использование плохой практикой, в первую очередь потому, что очень легко потерять след из состояния. Это особенно верно, когда мы работаем с веб-приложениями, проходящими через пул соединений. Переменные PL / SQL хранятся в памяти сеанса, поэтому бесполезны для сохранения состояния между вызовами в среде, где каждый вызов может быть передан случайному сеансу. В этом случае вы должны использовать глобальные контексты приложения для хранения значения. Они доступны через сеансы базы данных (поэтому вам нужно быть осторожным с идентификаторами). Узнайте больше .
Кроме того, подумайте, являются ли переменные в памяти (будь то PL / SQL или прикладной контекст) безопасным подходом. Если вы отслеживаете какой-либо рабочий процесс или состояние процесса, обычно лучше сохранить его в таблице, хотя бы только для целей восстановления.
Я надеюсь, что продолжение этого потока передает готовность удостовериться, что эта проблема не управляет никем от утеса. Существует много документации на различных форумах о решении этой проблемы о Vista, но я не мог найти никого аналогично статьями для 2K8. Как обозначено в этом сообщении форума я смог устранить проблему на машине Vista. Увы, подобному выполнению не удалось разрешить вопрос на 2K8.
Я проверил, что StaticFileHandler был включен в web.config, как предложено в этом сообщении в блоге по apijunkie.com. Однако, никакая удача.
Не разъясняя удачи, здесь - Моя функциональность серверной стороны была прекрасна. Весь MVC направляет работу как чемпион. Просто весь CSS и неудавшийся рендеринг JS. Когда браузером, на который указывают непосредственно на CSS или файлы JS получающаяся страница, был ASP.NET 404 а не традиционные 404 ошибочных страницы.
Таким образом, я вошел в менеджера IIS7 и в диалоговое окно Отображений Обработчика. Я добавил новый обработчик, который указал Систему. Сеть. StaticFileHandler вводят и дали ему расширение *.CSS. Затем я повторил это для *.JS, *.PNG, и *.GIF файлы. Когда я обновил сайт в браузере, все представило perectly. Снимки экрана ниже демонстрируют этот процесс.
Окно отображений обработчика:
(источник: windows.net)
Добавление нового Управляемого Обработчика
(источник: windows.net)
Это разрешило проблему, и теперь у меня есть отлично функционирование приложение MVC, размещенное в W2K. Время для Guinness.
Оказывается, что это не закрепление на Windows 2008. Если у любого есть любые идеи о том, как разрешить этот вопрос, он ценился бы.
Подробная проблема:
Windows 2K8 Сервер, IIS7. Имейте конвейер включенная и статическая установленная поддержка файла. Работы MVC, но CSS не представляет.
Какого черта?
Проблема была в способе, которым я создал приложение. Согласно потоку форума, расположенному здесь, я должен был выбрать "Классика.NET AppPool" для решения моей проблемы. Должен любить прогресс!