2011-07-24 33 views
0

後我下面這個樣品ADF庫地理處理服務 - 空內存調用

http://edndoc.esri.com/arcobjects/9.2/NET_Server_Doc/developer/samples/Web_Applications/ArcGIS_Buffer_Geoprocessing/ee05ac98-384b-4dbe-b8e3-8d741180dc9a.htm

我幾乎畫點周圍的圈子的地理處理服務。半徑約20公里。

該代碼工作正常,但「清除」例程不是。我每次清除以前的數據地圖,緩存服務的內存不被清除過,我得到這個

enter image description here

「清除」程序的代碼是相同的樣品,但不工作:

// Clears features from all graphics layers in the resource specified by _graphicsResourceName 
protected void ClearGraphics() 
{ 
    // Retrieve the resource and clear its graphics dataset 
    ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource graphicsMapResource = 
     Map1.GetFunctionality(_graphicsResourceName).Resource as 
     ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource; 
    graphicsMapResource.Graphics.Clear(); 

// This won't work too 
GeoprocessingResourceManager1.GetResource(0).ClearState(); 

// Refresh the resource and copy the map's callback results to the callback results collection so 
// the graphics are removed from the map 
Map1.RefreshResource(graphicsMapResource.Name); 
_callbackResultCollection.CopyFrom(Map1.CallbackResults); 
} 

這應該是簡單,但我無法弄清楚如何解決這個..我發現唯一的解決辦法是重新啓動IIS服務器這顯然是很糟糕

有人可以幫我嗎?

+0

你可以顯示用於繪製圓圈的代碼嗎? (大致) – Groo

+0

以下是代碼:http://nopaste.info/0c123fa03e.html 尋找///////////////////////// /////////////評論部分對發生了什麼有一個粗略的解釋 –

+0

對不起,我還不夠清楚,我的意思是將代碼添加到集合中的代碼。您正在使用'renderer.GetAllSymbols'方法來獲取項目列表。必須有一個地方,這些符號被創建並添加到集合中?我沒有使用這個API,但那是我尋找的地方。 – Groo

回答

0

通過清除作業隊列解決

0

我通常使用GraphicsLayerFunctionality.GraphicsDataSet.Tables.Clear();

ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource myMapResource myMapResource.Graphics.Tables.Remove(圖形元素);

你實際上正在處理一個.NET數據集