Классические переменные приложения ASP/ASP.NET
Мы унаследовали веб-сайт размером ~40 ГБ (в основном из пользовательского контента), который имеет смесь классического ASP, встроенного.Net и скомпилированного.Net, связанного с ним. Технически это связано с двумя сайтами, и для экономии места на диске я намеренно настроил IIS так, чтобы два физических сайта указывали на одну и ту же папку, но с независимыми пулами приложений для разделения рабочих процессов.
Проблема, с которой мы сталкиваемся, иногда возникает, когда вы посещаете один из сайтов, который, кажется, каким-то образом забирает переменные приложения с другого сайта. Из всего, что я видел здесь /Bing, рабочие процессы должны быть отделены друг от друга из-за независимых пулов приложений, но мне интересно, если классический ASP каким-то образом это выбрасывает? Учитывая смесь всего мыслимого (есть ~ 4200 физических файлов.asp/.aspx, причем последние в основном начинаются с 03_, потому что именно этот метод был выбран для перехода на.Net до того, как я ввязался), лучше ли иметь эти как независимые сайты и папки? Я не могу понять, почему переменные приложения переворачиваются в середине потока, но это вызывает многочисленные проблемы - в частности, потому что строки подключения также являются переменными приложения, и за этим стоит две базы данных.
Какие-нибудь советы? Работает ли классический ASP по-другому с точки зрения переменных приложения / рабочего процесса?
Примечание: я знаю, что переменные приложения - ужасный выбор в мире.Net, особенно для строк подключения. Я пытаюсь исправить это, но это грандиозное мероприятие, где нет документации или комментариев, и эти вещи используются везде.
1 ответ
Если не происходит преднамеренный обмен между классическим ASP-сайтом и приложением NET **, даже работающим на одном и том же сайте (!!!), но отдельными пулами приложений по очевидной причине, например, с использованием переменной приложения для хранения значений, классический ASP не сможет передать переменную в NET приложение. Даже переменная сеанса не является общей для Classic ASP и NET. Это должно быть сделано намеренно в коде.
Например, если вы используете iframe и передаете переменную в строке URL-адреса из приложения NET на классическую страницу ASP или обратно или просто вызываете приложение NET с классической страницы ASP и передаете переменные в строке URL-адреса или наоборот.
** Или использование файлов cookie для обмена значениями между приложениями, если вы работаете в одном домене.