예제 #1
0
        /// <summary>
        /// Publishes a Map Service
        /// </summary>
        /// <param name="minInstances"></param>
        /// <param name="maxInstances"></param>
        /// <param name="waitTimeout"></param>
        /// <param name="usageTimeout"></param>
        /// <param name="idleTimeout"></param>
        /// <param name="sAgsConnFile"></param>
        /// <param name="sPythonScriptFile"></param>
        /// <returns>Published URL or Error as a string</returns>
        public string Publish(int minInstances, int maxInstances, int waitTimeout, int usageTimeout, int idleTimeout, string sAgsConnFile, string sPythonScriptFile)
        {
            string     sURLs            = string.Empty;
            string     sMapServiceName  = string.Empty;
            string     sMxdFile         = string.Empty;
            string     sMxdTemplateName = string.Empty;
            MxdManager pManager         = null;

            try
            {
                if (String.IsNullOrEmpty(_sMXDTemplate))
                {
                    return("Error: No MXD passed.");
                }

                pManager = new MxdManager(_sMXDTemplate);

                if (pManager.IsInitialized)
                {
                    // Set sMapServiceName
                    sMapServiceName = _sMapServiceName;

                    // Set sMxdTemplateName
                    _sMXDTemplate    = _sMXDTemplate.Replace("C:\\\\", "C:\\");
                    sMxdTemplateName = _sMXDTemplate.Substring(_sMXDTemplate.LastIndexOf("\\") + 1);
                    sMxdTemplateName = sMxdTemplateName.Remove(sMxdTemplateName.IndexOf(".mxd"));

                    // Set sMxdFile
                    sMxdFile = Path.Combine(_sOutputDirectory, sMapServiceName + "_" + sMxdTemplateName + ".mxd");

                    if (!(pManager.CreateMxd(_sMXDTemplate, _sOutputDirectory, _ArcGISServer, sMxdFile, _sDBConn, _sDataset, _bSDE)))
                    {
                        sURLs = sURLs + "MxdManager.CreateMxd failed for " + _sMXDTemplate + ". Please see logfile for details.,";
                    }

                    // If sAgsConnFile is empty then publish using ArcGIS Server 10
                    if (string.IsNullOrEmpty(sAgsConnFile))
                    {
                        sURLs = sURLs + pManager.PublishMap(sMapServiceName + "_" + sMxdTemplateName, _ArcGISServer, sMxdFile, _bSDE, minInstances, maxInstances, waitTimeout, usageTimeout, idleTimeout);
                    }
                    else // publish using ArcGIS Server 10.1
                    {
#if _WIN64
                        sURLs = sURLs + pManager.PublishMap10_1(sMapServiceName + "_" + sMxdTemplateName, _ArcGISServer, sMxdFile, _sOutputDirectory, sAgsConnFile, sPythonScriptFile);
#endif
                    }
                }

                return(sURLs.TrimEnd(','));
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Error in PublishMXD.Publish: " + ex.Message + " Stack trace: " + ex.StackTrace);
            }
            finally
            {
                pManager = null;
            }
        }
예제 #2
0
        /// <summary>
        /// Publishes a Map Service
        /// </summary>
        /// <param name="minInstances"></param>
        /// <param name="maxInstances"></param>
        /// <param name="waitTimeout"></param>
        /// <param name="usageTimeout"></param>
        /// <param name="idleTimeout"></param>
        /// <param name="sAgsConnFile"></param>
        /// <param name="sPythonScriptDir"></param>
        /// <returns>Published URL or Error as a string</returns>
        public string Publish(string sAgsConnFile, string sPythonScriptDir)
        {
            string     sURLs            = string.Empty;
            string     sMapServiceName  = string.Empty;
            string     sMxdFile         = string.Empty;
            string     sMxdTemplateName = string.Empty;
            MxdManager pManager         = null;

            try
            {
                if (String.IsNullOrEmpty(_sMXDTemplate))
                {
                    return("Error: No MXD passed.");
                }

                pManager = new MxdManager(_sMXDTemplate);

                // Set sMapServiceName
                sMapServiceName = _sMapServiceName;

                // Set sMxdTemplateName
                _sMXDTemplate    = _sMXDTemplate.Replace("C:\\\\", "C:\\");
                sMxdTemplateName = _sMXDTemplate.Substring(_sMXDTemplate.LastIndexOf("\\") + 1);
                sMxdTemplateName = sMxdTemplateName.Remove(sMxdTemplateName.IndexOf(".mxd"));

                // Set sMxdFile
                sMxdFile = Path.Combine(_sOutputDirectory, sMapServiceName + "_" + sMxdTemplateName + ".mxd");

                if (!(pManager.CreateMxd(_sMXDTemplate,
                                         _sOutputDirectory,
                                         _ArcGISServer,
                                         sMxdFile,
                                         _sDBConn,
                                         _sDataset,
                                         sPythonScriptDir,
                                         _bSDE)))
                {
                    sURLs = sURLs + "MxdManager.CreateMxd failed for " + _sMXDTemplate + ". Please see logfile for details.,";
                }

                // publish using ArcGIS Server 10.1
                sURLs = sURLs + pManager.PublishMap10_1(sMapServiceName + "_" + sMxdTemplateName,
                                                        _ArcGISServer,
                                                        sMxdFile,
                                                        _sOutputDirectory,
                                                        sAgsConnFile,
                                                        Path.Combine(sPythonScriptDir, PUBLISHMXD_PY));

                return(sURLs.TrimEnd(','));
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Error in PublishMXD.Publish: " + ex.Message + " Stack trace: " + ex.StackTrace);
            }
            finally
            {
                pManager = null;
            }
        }
예제 #3
0
        /// <summary>
        /// Publishes a Map Service
        /// </summary>
        /// <param name="minInstances"></param>
        /// <param name="maxInstances"></param>
        /// <param name="waitTimeout"></param>
        /// <param name="usageTimeout"></param>
        /// <param name="idleTimeout"></param>
        /// <param name="sAgsConnFile"></param>
        /// <param name="sPythonScriptDir"></param>
        /// <returns>Published URL or Error as a string</returns>
        public string Publish(string sAgsConnFile, string sPythonScriptDir)
        {
            string sURLs = string.Empty;
            string sMapServiceName = string.Empty;
            string sMxdFile = string.Empty;
            string sMxdTemplateName = string.Empty;
            MxdManager pManager = null;

            try
            {
                if (String.IsNullOrEmpty(_sMXDTemplate)) return "Error: No MXD passed.";

                pManager = new MxdManager(_sMXDTemplate);

                // Set sMapServiceName
                sMapServiceName = _sMapServiceName;

                // Set sMxdTemplateName
                _sMXDTemplate = _sMXDTemplate.Replace("C:\\\\", "C:\\");
                sMxdTemplateName = _sMXDTemplate.Substring(_sMXDTemplate.LastIndexOf("\\") + 1);
                sMxdTemplateName = sMxdTemplateName.Remove(sMxdTemplateName.IndexOf(".mxd"));

                // Set sMxdFile
                sMxdFile = Path.Combine(_sOutputDirectory, sMapServiceName + "_" + sMxdTemplateName + ".mxd");

                if (!(pManager.CreateMxd(_sMXDTemplate, 
                                         _sOutputDirectory,
                                         _ArcGISServer, 
                                         sMxdFile,
                                         _sDBConn, 
                                         _sDataset, 
                                         sPythonScriptDir,
                                         _bSDE)))
                {
                    sURLs = sURLs + "MxdManager.CreateMxd failed for " + _sMXDTemplate + ". Please see logfile for details.,";
                }

                // publish using ArcGIS Server 10.1
                sURLs = sURLs + pManager.PublishMap10_1(sMapServiceName + "_" + sMxdTemplateName,
                                                        _ArcGISServer, 
                                                        sMxdFile, 
                                                        _sOutputDirectory, 
                                                        sAgsConnFile, 
                                                        Path.Combine(sPythonScriptDir, PUBLISHMXD_PY));
                
                return sURLs.TrimEnd(',');
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Error in PublishMXD.Publish: " + ex.Message + " Stack trace: " + ex.StackTrace);
            }
            finally
            {
                pManager = null;
            }
        }
예제 #4
0
        /// <summary>
        /// Publishes a Map Service
        /// </summary>
        /// <param name="minInstances"></param>
        /// <param name="maxInstances"></param>
        /// <param name="waitTimeout"></param>
        /// <param name="usageTimeout"></param>
        /// <param name="idleTimeout"></param>
        /// <param name="sAgsConnFile"></param>
        /// <param name="sPythonScriptFile"></param>
        /// <returns>Published URL or Error as a string</returns>
        public string Publish(int minInstances, int maxInstances, int waitTimeout, int usageTimeout, int idleTimeout, string sAgsConnFile, string sPythonScriptFile)
        {
            string sURLs = string.Empty;
            string sMapServiceName = string.Empty;
            string sMxdFile = string.Empty;
            string sMxdTemplateName = string.Empty;
            MxdManager pManager = null;

            try
            {
                if (String.IsNullOrEmpty(_sMXDTemplate)) return "Error: No MXD passed.";
                
                pManager = new MxdManager(_sMXDTemplate);
                
                if (pManager.IsInitialized)
                {
                    // Set sMapServiceName
                    sMapServiceName = _sMapServiceName;

                    // Set sMxdTemplateName
                    _sMXDTemplate = _sMXDTemplate.Replace("C:\\\\", "C:\\");
                    sMxdTemplateName = _sMXDTemplate.Substring(_sMXDTemplate.LastIndexOf("\\") + 1);
                    sMxdTemplateName = sMxdTemplateName.Remove(sMxdTemplateName.IndexOf(".mxd"));

                    // Set sMxdFile
                    sMxdFile = Path.Combine(_sOutputDirectory, sMapServiceName + "_" + sMxdTemplateName + ".mxd");

                    if (!(pManager.CreateMxd(_sMXDTemplate, _sOutputDirectory, _ArcGISServer, sMxdFile, _sDBConn, _sDataset, _bSDE)))
                    {
                        sURLs = sURLs + "MxdManager.CreateMxd failed for " + _sMXDTemplate + ". Please see logfile for details.,";
                    }

                    // If sAgsConnFile is empty then publish using ArcGIS Server 10
                    if (string.IsNullOrEmpty(sAgsConnFile))
                    {
                        sURLs = sURLs + pManager.PublishMap(sMapServiceName + "_" + sMxdTemplateName, _ArcGISServer, sMxdFile, _bSDE, minInstances, maxInstances, waitTimeout, usageTimeout, idleTimeout);
                    }
                    else // publish using ArcGIS Server 10.1
                    {
#if _WIN64 
                        sURLs = sURLs + pManager.PublishMap10_1(sMapServiceName + "_" + sMxdTemplateName, _ArcGISServer, sMxdFile, _sOutputDirectory, sAgsConnFile, sPythonScriptFile);
#endif
                    }
                }

                return sURLs.TrimEnd(',');
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Error in PublishMXD.Publish: " + ex.Message + " Stack trace: " + ex.StackTrace);
            }
            finally
            {
                
                pManager = null;
            }
        }