Select to view content in your preferred language

ArcGIS license corrupted by standalone application

2594
0
08-01-2013 07:46 AM
ArnaudFradin
Emerging Contributor
This is a problem my coworkers and I have encountered several times without being able to track down the exact issue, and a very annoying and almost untestable one.

When testing a standalone application using ArcObjects, at the some point the license would end up corrupted and impossible to repair without contacting ESRI support.

A sample of the latest application in development that corrupted my license recently:

  
[STAThread]
static void Main(string[] args)
{
  AoInitialize arcObjectInitialize = null;

 
 if (!ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop))
 {
  System.Console.WriteLine("This application could not load the correct version of ArcGIS.");
  Environment.Exit(Environment.ExitCode);
 }
  
 try
 {
  arcObjectInitialize = new AoInitialize();
  esriLicenseProductCode typeLicense;

  if (arcObjectInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeBasic) == esriLicenseStatus.esriLicenseAvailable)
  {
   typeLicense = esriLicenseProductCode.esriLicenseProductCodeBasic;
   arcObjectInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeBasic);
  }
  else
  {
   if (arcObjectInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeStandard) == esriLicenseStatus.esriLicenseAvailable)
   {
    typeLicense = esriLicenseProductCode.esriLicenseProductCodeStandard;
    arcObjectInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
   }
   else
   {
    if (arcObjectInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeAdvanced) == esriLicenseStatus.esriLicenseAvailable)
    {
     typeLicense = esriLicenseProductCode.esriLicenseProductCodeAdvanced;
     arcObjectInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
    }
    else
    {
     throw new Exception("ArcView");
    }
   }
  }
 }
 catch
 {
  Console.WriteLine("No valid license found, exiting program.");
  Environment.Exit(Environment.ExitCode);
 }
 
 
 //Some processings...
 
 
 try
 {
  arcObjectInitialize.Shutdown();
 }
 catch
 {
  Console.WriteLine("License shutdown failed, exiting program.");
  Environment.Exit(Environment.ExitCode);
 }
}


It follows the examples given on the support, but if there is something more to check or something that shouldn't be done, I woul be really glad to know what. The latest corruption happened while ArcMap was running in background, should it be avoided ? Is it a known issue or is there a way to check if the license is in use ?
0 Kudos
0 Replies