Доброго всем дня.
Решил написать консольное приложение, чтобы оно обновляло кэш с тайлами.
Сервис с тайлами настроен, запущен.
Вот код:
[STAThread]
        static void Main(string[] args)// я параметры передаю в аггументах
        {
            string scales = "";//"100000;50000;25000;23000;20000;18000;16000;15000;12000;10000;9000;8000;6000;5000;3000;2000;1000;500;250;100";
            string Server = "";// "localhost";
            string Service = "";//"work"
            string Frame = "";//"Layers"
            scales = args[3];
            Server = args[0];
            Service = args[1];
            Frame = args[2];
            IServerContext serverContext = null;
            try
            {
               
                GISServerConnection serverConnection;
                serverConnection = new GISServerConnection();
                serverConnection.Connect(Server);
                IServerObjectManager serverManager = serverConnection.ServerObjectManager;
                serverContext = serverManager.CreateServerContext("", "");
                
                ESRI.ArcGIS.Geoprocessor.Geoprocessor gp = new ESRI.ArcGIS.Geoprocessor.Geoprocessor(serverContext);
                
                if (gp.IServerContext != null)
                {
                    IGPProcess proc = new ManageMapServerCacheTiles(Server, Service, Frame, (object)"", (object)scales, "Recreate All Tiles");
                  
                    if (proc != null)
                    {
                        DateTime start = DateTime.Now;
                        Console.WriteLine("Начало " + start.ToString());
                        object retEx = gp.Execute(proc, null);
                            //if(retEx == null)
                            //    Console.WriteLine("Выполнение null");
                        DateTime end = DateTime.Now;
                        TimeSpan result = end - start;
                        Console.WriteLine("Завершено " + end.ToString());
                        Console.WriteLine("Время обновления " + result.Minutes.ToString() + " минут.");
                        
                    }
                    proc = null;
                }
                else
                {
                    ;
                }
                gp = null;
                
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                //serverContext.ReleaseContext();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(serverContext);
            }
        }
Работает 10 минут, сильно напрягая ArcSOC процессы.
если использовать serverContext.ReleaseContext(); , кстати как в примере от ESRI, то выходит эксепшн: Сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)
Брандмауэр выключен, служба RPC запущена и работает. Я с админскими правами. 
Нашел решение: System.Runtime.InteropServices.Marshal.ReleaseComObject(serverContext);, но в этом случае ArcSOC процессы как работали(не просто запущены, а используют процессор, память) так и работают.
Может кто сталкивался с такой проб