У меня возникла проблема с классическим ASP-приложением, которое я поддерживаю (архитектор давно ушел). Каждый сайт клиента получает виртуальный каталог, соответствующий их имени базы данных, например, http://www.site.com/Foo будет сайтом для пользователя Foo, и их база данных также будет называться Foo. 1: 1, очень ясно.Confused Запросы между классическим ASP + .NET Application
Предположим, что есть также http://www.site.com/Bar. Ошибка, которую я получаю очень редко, при минимальной нагрузке, заключается в том, что запросы POST/Bar сохраняются в базе данных/Foo.
Здесь стоит отметить, что действие сохранения подчинено .NET-компоненту, создаваемому при вызове Server.CreateObject. Этот экземпляр класса .NET использует
System.EnterpriseServices.ContextUtil .GetNamedProperty("Request");, чтобы получить дескриптор текущего запроса. Код .NET строит все о действии сохранения на основе этого запроса.
Моя рабочая теория заключается в том, что каким-то образом System.EnterpriseServices.ContextUtil и страница .asp, которая создала компонент .NET, имеют разные мнения о том, что представляет собой текущий запрос. Это возможно? Кажется, у меня есть идея, что запросы обрабатывались по одному, но я, похоже, не могу найти явный ответ на этот вопрос.
Я попытался поместить все виртуальные каталоги в один пул приложений, а каждый клиент со своим - проблема возникает в любом случае.
Моя единственная идея состоит в том, что какой-то элемент пула соединений с базой данных используется неправильно, но соединения с базой данных создаются с именем базы данных как часть строки подключения , поэтому я считаю, что это крайне маловероятно.
Сервер работает под управлением IIS 6, сервером базы данных является SQL Server 2000. Планы обновления уже ведутся.
Благодарим за отзыв - я должен был упомянуть, что описание проблемы было очень упрощенной версией и что на самом деле было несколько сайтов, столкнувшихся с проблемой. – overslacked