AnsweredAssumed Answered

Network dataset extension error on IIS

Question asked by luis.rodriguezgonzalesri-es-esridist Employee on May 23, 2016

Hi,

 

I have developed a custom evaluator in order to extend a network dataset for Route analysis. The extension class has been developed with ArcObjects 10.3.1 in C#. I have registered the extension class with ESRIRegAsm utility.

 

I have use the custom evaluator in a  cost attribute of a network dataset called RutadoFeatureDataSet_ND2. The Route analysis works when I execute the analysis with ArcMap.

 

On the other hand, I have developed a WebService with ArcObjects 10.3.1 in C#. This WebService executes a Route analysis on the network dataset RutadoFeatureDataSet_ND2 using the cost attribute with the custom evaluator. If I run the WebService with Visual Studio, the Route analysis works. But  If I run the WebService with IIS 7.5, the Route analysis fails. This is the error message:

2016-05-23 17:40:41,191 ERROR: Rutado.Logic.NetworkDataSetManager (Rutado.Logic.NetworkDataSetManager.LoadGetNetworkDataset:0) - Error al obtener el network dataset sde.SDE.RutadoFeatureDataSet_ND2

System.Runtime.InteropServices.COMException (0x80042603): Excepción de HRESULT: 0x80042603

   en ESRI.ArcGIS.Geodatabase.IDatasetContainer3.get_DatasetByName(esriDatasetType Type, String Name)

   en Rutado.Logic.NetworkDataSetManager.LoadGetNetworkDataset(IFeatureDataset featureDataset, String networkDatasetName)

 

The "HRESULT:0x80042603" means: The item does not have a definition. It is the same error I get when I load the the network dataset RutadoFeatureDataSet_ND2 with ArcMap and the

extension class is not registered with ESRIRegAsm utility.

 

This is the code that loads the network dataset:

        public void LoadGetNetworkDataset(IFeatureDataset featureDataset, string networkDatasetName)

        {

            try

            {

                if(featureDataset != null)

                {

                    IFeatureDatasetExtensionContainer fdxContainer = featureDataset as IFeatureDatasetExtensionContainer;

                    IFeatureDatasetExtension featureDatasetExtension = fdxContainer.FindExtension(esriDatasetType.esriDTNetworkDataset);

                    IDatasetContainer3 datasetContainer3 = featureDatasetExtension as IDatasetContainer3;

                    NetworkDataset = datasetContainer3.get_DatasetByName(esriDatasetType.esriDTNetworkDataset, networkDatasetName) as INetworkDataset;

                }

            }

            catch(System.Exception e)

            {

                LogError(log, "Error al obtener el network dataset " + networkDatasetName, e);

            }

        }

 

Regards

Outcomes