Мы поддерживаем веб-приложение, которое в основном представляет собой набор ASP Classic страниц, загружающих COM-объекты (через самодельную среду, чтобы избежать дублирования кода и создания избыточных экземпляров), работающее на IIS 6.2:
Dim stuffer: Set stuffer= CreateObject("StuffUtils.Stuffer")
Dim this: this= "this param"
Dim this: that= "this param"
stuffer.process this, that ' "Out of Memory" error occurs here
StuffUtils - это самодельная библиотека .NET DLL с возможностью взаимодействия с COM, основанная на наборе из 3 огромных библиотек DLL (приобретено): a.dll (11M), b.dll (22M), c.dll (11M). Вызов выше будет:
page.asp --> stuffer.stuff() --> c.dll calls and instantiations
Вызов stuffer.process()
завершается неудачно, и появляется сообщение Out of memory
, но только для одной установки IIS (и, конечно, для клиентской, которая совершенно недоступна) и для одного конкретного случая (!). У нас все нормально. Также, если dll вызывается из приложения командной строки, он запускает файл даже на клиентском сервере (в окне CMD).
Я полагаю, что сообщение об ошибке может быть связано с загрузкой этих огромных библиотек DLL, однако ошибка возникает при вызове метода, а не при создании компонента сервера. Я пропустил запись в конфигурации IIS?