laptop and a wrench

不具合

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

最後に公開された状態: August 25, 2014 ArcGIS Server (.NET)
不具合 ID 番号 NIM047107
送信されましたJuly 28, 2009
最終更新日June 5, 2024
適用対象ArcGIS Server (.NET)
見つかったバージョン9.3.1
プログラム言語C#
オペレーティング システムWindows OS
オペレーティング システムのバージョンVista
修正されたバージョン10.1
ステータスFixed

対処法

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()); }============================

再現の手順

不具合 ID: NIM047107

ソフトウェア:

  • ArcGIS Server (.NET)

バグのステータスが変更されたときに通知を受け取る

Esri Support アプリのダウンロード

このトピックについてさらに調べる

ArcGIS エキスパートのサポートを受ける

テクニカル サポートへのお問い合わせ

Esri Support アプリのダウンロード

ダウンロード オプションに移動