We have a legacy application that has been running successfully for many years. It is a VB 6 activex component that we use to call a dll written with C. The vb component is called by a vb (desktop) application and is also called using classic asp. This setup has worked for many years and runs on a windows 2003 development server (IIS 6) and a windows 2008 R2 live server (IIS 7.5).
We place the dll in the system32 directory on 2003 and in the syswow64 direction on 2008.
The active x dll gets registered as follows: regsvr32 c:\windows\system32\wrapper.dll
Recently, we are running into what appears to be some type of memory issue. The problem does NOT show itself in the desktop app. The problem only appears when running from classic asp under IIS.
When the application fails, it does not throw any type of error. But, the values in an array within the C program never get populated. Thus, the results from the dll are incomplete.
Some recent changes to the C dll have started to cause problems. In C, we have discovered that a value of 1500 for this array, causes it to fail.
#define PPT_LIST_LENGTH 1400
float f_list[PPT_LIST_LENGTH];
double d_list[PPT_LIST_LENGTH];
With 1400 it runs under IIS, but, the past few days, we have noticed that it will start to fail after running on the live server for a couple days. If I reset IIS, the application begins to run normally again.
This last problem seems to confirm that it is some type of memory issue.
Are there any settings in IIS that might give the application more memory? A way to give the dll more memory from the vb component? Ideas?