laptop and a wrench

Erro

Cannot retrieve GPJobMessage when adding ArcGIS Server SOAP Web Services WSDL as a "Service Reference" in VS 2008.

Última Publicação: August 25, 2014 ArcGIS Server (.NET)
Número de ID do Erro NIM047107
EnviadoJuly 28, 2009
Última ModificaçãoJune 5, 2024
Aplica-se àArcGIS Server (.NET)
Versão encontrada9.3.1
Idioma do programaC#
Sistema OperacionalWindows OS
Versão do Sistema OperacionalVista
Versão Fixa10.1
StatusFixed

Solução Provisória

Testing code of pure SOAP api=====================string endpoint = "http://xuening931/arcgis/services/Buffer_Features/GPServer"; ESRI.ArcGIS.ADF.ArcGISServer.GPServerProxy gpserverproxy = new ESRI.ArcGIS.ADF.ArcGISServer.GPServerProxy(endpoint); ESRI.ArcGIS.ADF.ArcGISServer.GPToolInfo gpti = (ESRI.ArcGIS.ADF.ArcGISServer.GPToolInfo)gpserverproxy.GetToolInfo("Buffer Points"); ESRI.ArcGIS.ADF.ArcGISServer.GPParameterInfo[] paramInfos = gpti.ParameterInfo; ESRI.ArcGIS.ADF.ArcGISServer.GPParameterInfo paramInfo; // Create input points ESRI.ArcGIS.ADF.ArcGISServer.GPFeatureRecordSetLayer gpfrs = (ESRI.ArcGIS.ADF.ArcGISServer.GPFeatureRecordSetLayer)paramInfos[0].Value; PointN p1 = new PointN(); p1.X = -87.839748099; p1.Y = 41.6286667210001; ESRI.ArcGIS.ADF.ArcGISServer.RecordSet rs = gpfrs.RecordSet; ESRI.ArcGIS.ADF.ArcGISServer.Fields flds = rs.Fields; object[] o = new object[flds.FieldArray.Length]; ESRI.ArcGIS.ADF.ArcGISServer.Record rec = new ESRI.ArcGIS.ADF.ArcGISServer.Record(); for (int i = 0; i < flds.FieldArray.Length; i++) { if (flds.FieldArray[i].Name == gpfrs.ShapeFieldName) { o[i] = p1; } else if (flds.FieldArray[i].Name == gpfrs.OIDFieldName) { o[i] = 1; } else { ESRI.ArcGIS.ADF.ArcGISServer.esriFieldType ftype = flds.FieldArray[i].Type; if (ftype == ESRI.ArcGIS.ADF.ArcGISServer.esriFieldType.esriFieldTypeString) { o[i] = string.Empty; } else { o[i] = 1; } } } rec.Values = o; ESRI.ArcGIS.ADF.ArcGISServer.Record[] recs = new ESRI.ArcGIS.ADF.ArcGISServer.Record[1]; recs[0] = rec; gpfrs.RecordSet.Records = recs; ESRI.ArcGIS.ADF.ArcGISServer.GPLinearUnit linear = new ESRI.ArcGIS.ADF.ArcGISServer.GPLinearUnit(); linear.Units = esriUnits.esriFeet; linear.Value = 500; ESRI.ArcGIS.ADF.ArcGISServer.GPValue[] gpvalues = new ESRI.ArcGIS.ADF.ArcGISServer.GPValue[1]; gpvalues[0] = gpfrs; string JobID = gpserverproxy.SubmitJob(gpti.Name, gpvalues, null, null); ESRI.ArcGIS.ADF.ArcGISServer.JobMessage[] jobmes = (ESRI.ArcGIS.ADF.ArcGISServer.JobMessage[])gpserverproxy.GetJobMessages(JobID); System.Diagnostics.Debug.Print("job message: " + jobmes[0].MessageDesc); // Check status of job, if finished and succeeded then proceed - false delay while (gpserverproxy.GetJobStatus(JobID) != ESRI.ArcGIS.ADF.ArcGISServer.esriJobStatus.esriJobSucceeded) { System.Threading.Thread.Sleep(5000); } ESRI.ArcGIS.ADF.ArcGISServer.GPResultOptions gpro = null; ESRI.ArcGIS.ADF.ArcGISServer.GPResult result = gpserverproxy.GetJobResult(JobID, null, gpro);=====================Testing code for web reference.============================try { string endpoint = "http://xuening931/arcgis/services/Buffer_Features/GPServer"; myWebRef.Buffer_Features_GPServer gpserverproxy = new myWebRef.Buffer_Features_GPServer(); gpserverproxy.Url = endpoint; myWebRef.GPToolInfo gpti = (myWebRef.GPToolInfo)gpserverproxy.GetToolInfo("Buffer Points"); myWebRef.GPParameterInfo[] paramInfos = gpti.ParameterInfo; myWebRef.GPParameterInfo paramInfo; // Create input points myWebRef.GPFeatureRecordSetLayer gpfrs = (myWebRef.GPFeatureRecordSetLayer)paramInfos[0].Value; myWebRef.PointN p1 = new myWebRef.PointN(); p1.X = -87.839748099; p1.Y = 41.6286667210001; myWebRef.RecordSet rs = gpfrs.RecordSet; myWebRef.Fields flds = rs.Fields; object[] o = new object[flds.FieldArray.Length]; myWebRef.Record rec = new myWebRef.Record(); for (int i = 0; i < flds.FieldArray.Length; i++) { if (flds.FieldArray[i].Name == gpfrs.ShapeFieldName) { o[i] = p1; } else if (flds.FieldArray[i].Name == gpfrs.OIDFieldName) { o[i] = 1; } else { myWebRef.esriFieldType ftype = flds.FieldArray[i].Type; if (ftype == myWebRef.esriFieldType.esriFieldTypeString) { o[i] = string.Empty; } else { o[i] = 1; } } } rec.Values = o; myWebRef.Record[] recs = new myWebRef.Record[1]; recs[0] = rec; gpfrs.RecordSet.Records = recs; myWebRef.GPLinearUnit linear = new myWebRef.GPLinearUnit(); linear.Units = myWebRef.esriUnits.esriFeet; linear.Value = 500; myWebRef.GPValue[] gpvalues = new myWebRef.GPValue[1]; gpvalues[0] = gpfrs; myWebRef.GPResultOptions option = new myWebRef.GPResultOptions(); myWebRef.PropertySet property = new myWebRef.PropertySet(); string JobID = gpserverproxy.SubmitJob(gpti.Name, gpvalues, option, property); myWebRef.JobMessage[] jobmes = (myWebRef.JobMessage[])gpserverproxy.GetJobMessages(JobID); System.Diagnostics.Debug.Print("job message: " + jobmes[0].MessageDesc); // Check status of job, if finished and succeeded then proceed - false delay while (gpserverproxy.GetJobStatus(JobID) != myWebRef.esriJobStatus.esriJobSucceeded) { System.Threading.Thread.Sleep(5000); } myWebRef.GPResultOptions gpro = null; myWebRef.GPResult result = gpserverproxy.GetJobResult(JobID, null, gpro); int len = result.Messages.Length; for (int i = 0; i < len; i++) { System.Diagnostics.Debug.Print("MessageDesc: " + result.Messages[i].MessageDesc.ToString()); System.Diagnostics.Debug.Print("MessageType: " + result.Messages[i].MessageType.ToString()); } } catch (Exception ex) { System.Diagnostics.Debug.Print(ex.Message.ToString()); }============================

Etapas para Reproduzir

ID do Erro: NIM047107

Software:

  • ArcGIS Server (.NET)

Seja notificado quando o status de um erro mudar

Baixe o Aplicativo de Suporte da Esri

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download