You do not indicate the scope of the variable containing the ComFacade instance. If the variable is static, then this will be the behavior that I would expect.
I would suggest you understand the life cycle of an ASP.NET page and the implications of this with variables from different areas. If the COM link should not be single, then you will need to create a new instance each time the page loads and deletes it as needed (possibly when the page is displayed).
Update (based on comment)
Note. This answer applies to any object in .NET that you are trying to save longer than a single page request. In the end, all objects are removed / garbage collected.
You note that an object is created when a user logs in and is deleted when they log out. The only way to do this is to cache the object in something static in order to reference it. Keep in mind that every time a user does something in his browser, the request goes from the browser back to IIS / ASP.NET for processing and causes the page life cycle (excessive simplification, but good enough). Each time the user does this, the page can be processed by a different thread in the application pool each time. If several users interact with the site, then over the course of a certain period of time the same stream can (and most likely will) be used by more than one user. In short, that's why with ASP.NET/IIS you have to be extremely careful when using singleton / static members.
My question, on the other hand, is why do you need a reference to a COM object for more than one page request?
source share