Товарищи из Редмонта... вы писец какие не товарищи с умом...
Предыстория:
заказчики уже с полгода назад заметили что если в ASP.Net приложении финансовом, разработанном моей командой, добавить скан чека, когда забиваешь суммы в гроссбух, то всё работает, сохраняется, но в попапе при этом выскакивает матюг, что сессия не найдена.
Т.к. проект мы к тому времени разрабатывать закончили и передали на поддержку самому заказчику, плюс приоритет баги был невысок, мы им серьезно и не занимались. К тому же ни на одном из наших серверов проблема не проявлялась хоть тресни. Я выдал пару идей что проверять индусскому мальчегу-программистегу и на том разошлись.
... прошло несколько месяцев, бага ими так пофикшена не была, начальство начало злиться, в результате в приказном порядке велено было поставить меня к станку, чтобы пофиксил бажину.
Как водится, у меня проблема не проявилась, не проявилась они и на их сервере куда я зашел под своим аккаунтом. Только зайдя на него под аккаунтом одного из их девелоперов увидел воочию что падает.
Стал копать.
Копал, копал, перебрал все известные и не очень баги в IE, поигрался с правами аппула и файлов.
В результате получил когнитивный диссонанс, когда от прав на каталоги на сервере проблема то проявлялась на клиенте то нет.
В финальном раунде убил сегодня 6 часов, чтобы понять что за чертовщина творится.
Выяснилось, что проблема проявляется ТОЛЬКО если аккаунт аппула имеет ограниченный доступ, фолдер для файл аплоада тоже имеет ограниченный доступ (но достаточный чтобы добавлять файлы, переименовывать и удалять их и создавать подкаталоги).
Таким образом невинный IE остался необматеренный и я начал мучать код работы с файлами.
Методом последовательного отключения функционала нашел блок при запуске которого все сессии слетали к едрене фене. А окончательно все стало ясно, когда я на работающем приложении в фоне почистил каталог и все сессии моментально грохнулись.
Это похоже на мониторинг файлсистемы а-ля web.config. Вопрос это фича или какой матерый индус мощно зареюзил код чтения конфигов и теперь на любой файл вешается мониторинг при обращении?
Файлы вроде как не мониторятся, а вот каталоги, особенно которые находятся внутри вебаппа - ага. мониторятся. Мегамозги из то ли Редмонта, а то ли бангалорские подумали, что раз изменился каталог доступный по вирт пути то всё, пиндык приложению, боржоми нужно запрещать.
А у заказчика вот такая дурацкая манера размещать все помойки тут же в приложении.
Особо пикантно было то, что проявляется только при определенном сочетании секурити аккаунта под которым запущен ASP.Net пул и прав на сам каталог.
А вот и статья которую нашел уже поняв в чем причина.
Вобщем 10 лет уже под дотнет разрабатываю, но постоянно сюрпризы, ля =)
http://www.aaronblake.co.uk/blog/2009/09/28/bug-fix-application-restarts-on-directory-delete-in-asp-net/
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий