public class CheckOutLicenses { private IAoInitialize _aoInit; private IMMAppInitialize _mmAppInit; public CheckOutLicenses() { _aoInit = new AoInitializeClass(); _mmAppInit = new MMAppInitializeClass(); } public void GetEsriLicense(esriLicenseProductCode LicenseToCheckOut) { esriLicenseStatus EsriLicense = (esriLicenseStatus)_aoInit.IsProductCodeAvailable(LicenseToCheckOut); if (EsriLicense == esriLicenseStatus.esriLicenseAvailable) { //If the license is available check it out EsriLicense = _aoInit.Initialize(LicenseToCheckOut); if (EsriLicense != esriLicenseStatus.esriLicenseCheckedOut) { throw new Exception("The Esri license requested could not be checked out"); } } } public void ReleaseEsriLicense() { if (_aoInit == null) return; _aoInit.Shutdown(); <-- HERE IS WHERE THE OS LOADER LOCK THROWS AN EXCEPTION } public void GetArcFMLicense(mmLicensedProductCode LicenseToCheckOut) { mmLicenseStatus mmLS = _mmAppInit.IsProductCodeAvailable(LicenseToCheckOut); if (mmLS == mmLicenseStatus.mmLicenseAvailable) { //if the license is available check it out mmLicenseStatus arcFMLicenseStatus = _mmAppInit.Initialize(LicenseToCheckOut); if (arcFMLicenseStatus != mmLicenseStatus.mmLicenseCheckedOut) { throw new Exception("The ArcFM license requested could not be checked out"); } } } public void ReleaseArcLicense() { _mmAppInit.Shutdown(); } } }
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.