AnsweredAssumed Answered

C# Create a Service in an Existing Folder

Question asked by AkhilP on Feb 7, 2013
Latest reply on Feb 13, 2013 by AkhilP
I am trying to create a service in a folder called Mobile_Services.
When I publish a map using ArcMap or ArcCatalog I am able to select an Existing folder called "Mobile_Services".
But when I use the code below, the location of the service appears into the root directory of the server, which is the default as mentioned in the help files.

I would like to have the service created in an existing folder called "Mobile_Services".
Please have a look at my code and hope fully someone can shed some light on this.

        public static void PublishMobileMapServiceForRaDCAMS(string serverMachineName, string serviceName, string pathToMXD)         {             //define paths for the onlineresource property in the extension properties             string resourceWMS = "http://" + serverMachineName + "/ArcGIS/services/" + serviceName + "/MapServer/WMSServer";             string resourceMobile = "http://" + serverMachineName + "/ArcGIS/services/" + serviceName + "/MapServer/MobileServer";              //  Connect to the ArcGIS server called  serverMachineName (string) .                IGISServerConnection pGISServerConnection = new GISServerConnectionClass();             pGISServerConnection.Connect(serverMachineName);              // create the new configuration             IServerObjectAdmin4 pServerObjectAdmin = (IServerObjectAdmin4)pGISServerConnection.ServerObjectAdmin;             IServerObjectConfiguration pConfiguration = pServerObjectAdmin.CreateConfiguration();             IServerObjectConfiguration2 pConfiguration2 = (IServerObjectConfiguration2)pConfiguration;             IServerObjectConfiguration3 pConfiguration3 = (IServerObjectConfiguration3)pConfiguration;              // set the   General Configuration Settings             pConfiguration.Name = serviceName;           //  the name of this configuration             pConfiguration.TypeName = "MapServer";   // the type of server object to be created             pConfiguration.IsPooled = true;             pConfiguration.MinInstances = 1;             pConfiguration.MaxInstances = 2;             pConfiguration.WaitTimeout = 60;             pConfiguration.UsageTimeout = 600;             pConfiguration.StartupType = esriStartupType.esriSTAutomatic;             pConfiguration.IsolationLevel = esriServerIsolationLevel.esriServerIsolationHigh;               //IEnumServerDirectory pEnumServerDirectories = pServerObjectAdmin.GetServerDirectories();             //pEnumServerDirectories.Reset();             //IServerDirectory pServerDirectory = pEnumServerDirectories.Next();             //while (pServerDirectory != null)             //{             //    if (((IServerDirectory2)pServerDirectory).Type == esriServerDirectoryType.esriSDTypeOutput)             //    {             //        string dir = pServerDirectory.Path;             //        string vdir = pServerDirectory.URL;             //        break;             //    }             //}               //  Set the configuration Properties of the MapServer Object             IPropertySet pProps = pConfiguration.Properties;             pProps.SetProperty("FilePath", pathToMXD);    // required property             pProps.SetProperty("OutputDir", "c:\\arcgisserver\\arcgisoutput");             string virtualOutDir = " http://" + serverMachineName + "/arcgisoutput";             pProps.SetProperty("VirtualOutputDir", virtualOutDir);                         pProps.SetProperty("MaxImageHeight", "2048");             pProps.SetProperty("MaxRecordCount", "500");             pProps.SetProperty("MaxBufferCount", "100");             pProps.SetProperty("MaxImageWidth", "2048");             pConfiguration.Properties = pProps;                          //  Set the info segment of the MapServer Object  properties             IPropertySet info = pConfiguration2.Info;             info.SetProperty("WebEnabled", "true");             info.SetProperty("WebCapabilities", "Map,Query,Data");             pConfiguration2.Info = info;              //  Set the recycle properties of the MapSrver object             IPropertySet pProp = pConfiguration.RecycleProperties;             pProp.SetProperty("StartTime", "1:00 AM");    //   start recycling at midnight             pProp.SetProperty("Interval", "86400");      //  every 24 hours             pConfiguration.RecycleProperties = pProp;               // create a mobile server and web enabled             pConfiguration2.set_ExtensionEnabled("Mobileserver", true);             IServerObjectManager pServerObjectManager = pGISServerConnection.ServerObjectManager;             IServerContext serverContext = pServerObjectManager.CreateServerContext(string.Empty, string.Empty);             IPropertySet2 extensionSet = serverContext.CreateObject("esriSystem.PropertySet") as IPropertySet2;             extensionSet.SetProperty("WebEnabled", "true");             extensionSet.SetProperty("WebCapabilities", "");             pConfiguration2.set_ExtensionInfo("Mobileserver", extensionSet);              //' add the configuration to  the server             pServerObjectAdmin.AddConfiguration(pConfiguration2);                         pServerObjectAdmin.StartConfiguration(serviceName, "MapServer");                                       //IEnumBSTR pEnumBSTR = pServerObjectAdmin.GetFolders("arcgisoutput");             //pEnumBSTR.Reset();             //string fName = pEnumBSTR.Next();             //while (pEnumBSTR.Next() != null)             //{             //    fName = pEnumBSTR.Next();                             //}         }


Thanks in advance!

Outcomes