NetCore IIS scoped requests - Sage BOI - Cannot initiate multiple "SY_Session"

SOLVED

HI All!

We've put together a netcore API hosted on IIS for integrating with other tools we have.  All of our services on the API are scoped to give the requests their own instances and dependencies.  

public static void AppServices(this IServiceCollection services)
        {
            services.AddScoped<IARInvoice, ARInvoice>();
            services.AddScoped<IGLTransJournal, GLTransJournal>();
            services.AddScoped<ICustDoc, CustDoc>();
            services.AddScoped<ICustomer, Customer>();
            services.AddScoped<IProvideXSession, ProvideXSession>();

        }

We have a ProvideX service class that instantiates the session object and allows for that services to utilize that session and make it's svc/ bus object requests to Sage BOI.  Because the netcore services are scoped and the ProvideX service is IDisposable, when the scoped service ends, it will run the Dispose() on the ProvideX dependency and drop the objects etc. for that session.

public void Dispose()
        {
            pvxSession.nCleanUp();
            pvxSession.DropObject();
            pvxSession = null;
        }

My issue is that even though each request is supposed to instantiate it's own ProvideXSession class and generate a new "SY_Session" object, it crashes as if it does not allow a new session object to be created while another is open from that same machine.  It is waiting for another session to close, then it will initialize another session object.  Because of the way the API is bringing in simultaneous requests that need to be handled in parallel, how can we allow multiple session with the same application user logon from the same IIS App Pool?

Here is the session request.  Again, even though these are scoped and completely separate requests to create "SY_Session" objects, it will fail on with a "System.Runtime.InteropServices.COMException (0x80020006): Unknown name. (0x80020006 (DISP_E_UNKNOWNNAME))" when a second parallel request is made. 

using Microsoft.Extensions.Configuration;
using System;
using ProvideX;


namespace SageAPI.Data
{
    public class ProvideXSession : IProvideXSession, IDisposable
    {
        private readonly IConfiguration _config;
        internal dynamic _pvxSession;
        internal Script _script;

        public dynamic pvxSession
        {
            get { return _pvxSession;  }
            set { _pvxSession = value; }

        }

        public ProvideXSession(IConfiguration config)
        {
            _config = config;
            _script = new Script();
            _script.Init(_config["AppSettings:SageMas90Folder"]);
            CreateSession(DateTime.Now.ToString("yyyyMMdd"));
        }

        private void CreateSession(string moduleDate)
        {

            pvxSession = _script.NewObject("SY_Session");
            pvxSession.nInitiateUI(); //<---- fails here when a newly instaited class make a request and there is an open session to Sage
            pvxSession.oUI.nInitCustomizer();
            pvxSession.nSetUser(_config["AppSettings:SageServiceUser"], _config["AppSettings:SageServiceSecret"]);
            pvxSession.nSetCompany(_config["AppSettings:SageCompany"]);
            pvxSession.nSetModule("SYS");
            pvxSession.nSetDate("SYS", moduleDate);

        }

        public dynamic CreateProgramInterface(string program, string module, DateTime moduleDate, string bus)
        {
            pvxSession.nSetDate(module, moduleDate.ToString("yyyyMMdd"));
            pvxSession.nSetModule(module);
            pvxSession.nSetProgram(pvxSession.nLookupTask(program));
            return pvxSession.oNewObject(bus);
        }
        public void Dispose()
        {
            pvxSession.nCleanUp();
            pvxSession.DropObject();
            pvxSession = null;
        }

    }
}


How can I get each API request to have open and close it's own session object to Sage without needing to wait for another session to drop.  Is there a setting in Sage that allows multiple sessions to be create from the same application user?