Application architecture : Develop interface between two existing
systems,
a. Enterprise CRM system
b. Web based intranet system.
Environment : Intranet
Server : IIS and ASP.
Script : VBScript and Javascript
Client : 1. IE browser.
2. VBForm embedded with WebBrowser control (MS Internet
control - shdocvw.dll) called from another enterprise application.
Web App : Uses server side business logic implemented in COM
components. For each ASP session(starts with first ASP page user
access and ends with last ASP page), server COM components are
instanciated and held in session variables and liberally used in many
of the ASP pages. In the last page, there is an "Exit" button, which
when the user press, client side javascript closes the frames etc and
invokes a destructor like Close.asp page (in a seperate window)that
releases the session vars holding the COM component. Also, when
window-close button(X) of IE is pressed same client side javascript
invokes Close.asp pagein a seperate window.
So far fine. No issues.
Issue :
When VBForm client is used, in the custom browser, if user press the
"Exit" button to end the session, all the server side COM components
held in Session vars are released immediately. No issues at all.
However, if the user press the close button(X) of the VBForm, a new
window spawned with Close.asp. However, the server side COM components
are not released.
Result : If website accessed through VBForm client, server side COM
components are not released and hangs there for 20 minutes before they
are released. Causes severe stress on the server, thus users getting
slow response, at times requires a server reboot.
Rootcause :
It was discovered during rootcause analysis and further corroborated
by many ofearlier questions in these forums and elsewhere is that,
when a WebBrowser control client is used (as in the case here), the
moment user close the window and new window is opened (by client side
javascript) with Close.asp, IIS thinks it is a new session. So, it
tries to release the COM components of the new session (though none at
this point). Thus, the scope is lost for the orinigal session and its
session vars hang there until session is timedout after 20 minutes.
The crux of the problem is IE and WebBrowser control behaving
differently w.r.t new windows. For IIS, with IE, the new window
belongs to existing session but with Webbrowser control, the new
window belongs to a new session.
Ever elusive Solution : ?????
So, with this detailed problem description , does any one have a
solution to retain the original session even after opening a new
window from VBForm client.
Any solution(direct or alternate), workaround is very much
appreciated.
Thanks a lot for your help.
-Vetri