ThinkGeo.com    |     Documentation    |     Premium Support

Error cacheRaster

Hi, 



I have an error like this :



Message             : Le processus ne peut pas accéder au fichier ‘…bin\Debug\PV\DLL\Workspaces\Map\CACHERASTER\ManualCache\9011.71554565925\1627495\1639000.png’, car il est en cours d’utilisation par un autre processus.
Source              : mscorlib
Module              : mscorlib.dll
Exception          : System.IO.IOException: Le processus ne peut pas accéder au fichier ‘…bin\Debug\PV\DLL\Workspaces\Map\CACHERASTER\ManualCache\9011.71554565925\1627495\1639000.png’, car il est en cours d’utilisation par un autre processus.
   à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   à System.IO.File.Delete(String path)
   à ThinkGeo.MapSuite.Core.FileBitmapTileCache.DeleteTileCore(Tile tile)
   à ThinkGeo.MapSuite.Core.TileCache.DeleteTiles(RectangleShape worldExtent)
   à ThinkGeo.MapSuite.WpfDesktopEdition.LayerOverlay.RefreshCore(RectangleShape extent)
   à ThinkGeo.MapSuite.WpfDesktopEdition.WpfMap.Refresh(RectangleShape extent, IEnumerable`1 overlays)
   à Invivo.Workspaces.Map.MapOccupSolViewModel.set_AnalyseThematique(IAnalyseThématique value)
   à Invivo.Workspaces.Map.UcMapOccupSolWorkspace.ActualiserAnalyseThématique()
   à Invivo.Workspaces.Map.UcMapOccupSolWorkspace.SetModuleInternal()
   à Invivo.Framework.Portail.WPF.UCWorkspace.SetModule(UCModuleSimple m)
   à Invivo.Framework.Portail.WPF.UCWorkspaceHost.SetModule(UCModuleSimple mod)
   à Invivo.Framework.Portail.WPF.UCModuleSimple.ActiverModule()
   à Invivo.Framework.Portail.WPF.ModuleManager.Invivo.Framework.Portail.WPF.IModuleManager.OuvrirModule(ModuleMetier module)
   à Invivo.Portail.UI.PagePortail.btn_Checked(Object sender, RoutedEventArgs e)
   à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   à System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   à System.Windows.Controls.Primitives.ToggleButton.OnChecked(RoutedEventArgs e)
   à System.Windows.Controls.Primitives.ToggleButton.OnIsCheckedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   à System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   à System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   à System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   à System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   à System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   à System.Windows.DependencyObject.SetCurrentValueInternal(DependencyProperty dp, Object value)
   à System.Windows.Controls.Primitives.ToggleButton.OnToggle()
   à System.Windows.Controls.Primitives.ToggleButton.OnClick()
   à System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   à System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   à System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   à System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   à System.Windows.Input.InputManager.ProcessStagingArea()
   à System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   à System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   à System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   à MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)



Have you already met this error ?

The dll version with this error is 7.0.0.140.



So I decided to change the version of dll and I pick 7.0.0.234 from the daily production builds and now I have an error like this : 

L’exception System.Data.SqlClient.SqlException n’a pas été gérée
  Message=Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
Nom de colonne non valide : ‘OCCUPATIONSOLID’.
  Source=.Net SqlClient Data Provider
  ErrorCode=-2146232060
  Class=16
  LineNumber=1
  Number=207
  Procedure=""
  Server=.\SQLEXPRESS
  State=1
  StackTrace:
       à ThinkGeo.MapSuite.WpfDesktopEdition.Tile.<>c__DisplayClass6.<DrawException>b__4()
       à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       à MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
       à System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
       à System.Windows.Threading.DispatcherOperation.InvokeImpl()
       à System.Threading.ExecutionContext.runTryCode(Object userData)
       à System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       à System.Windows.Threading.DispatcherOperation.Invoke()
       à System.Windows.Threading.Dispatcher.ProcessQueue()
       à System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       à MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
       à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       à MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
       à System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
       à System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
       à MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       à MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
       à System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
       à System.Windows.Application.RunInternal(Window window)
       à System.Windows.Application.Run()
       à Invivo.SaisieParcellaire.Test.App.Main() dans …\SaisieParcellaire.Test\obj\Debug\App.g.cs:ligne 51
       à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       à System.Threading.ThreadHelper.ThreadStart()
  InnerException: 


Please help me … ;-(

I have a question about the dll’s version, we can only download the last one ?
Thanks regards.



Stéphanie.

Hi,  
  
 It’s me again ;-) 
 Just to tell you that I found out why I had an error with the cacheraster. 
 With the version dll 7, we can refresh with a rectangleshape extent as a parameter 
 So I did this :  
 MapActif.Refresh(MapActif.CurrentExtent); => To refresh only a zone and this causes the first error. 
 So I changed and now I have  
 MapActif.Refresh() and I don’t have an error anymore but I have to refresh all the map. 
  
 For the second error, I still have it. 
  
 Thanks. 
  
 Regards. 
 Steph.

Hi Steph, 
  
 Thanks for sharing your experience, but can you show some codes about your samples here? Seems like the problem comes from the MsSqlServerFeatureSource, but not sure the secnarioes. Also what’s the cultureInfo of your devlopment machine? So that maybe we can simulate a simillar machine to recreate the problem. 
  
 Regards! 
 Johnny

Hi Johnny, 




Thanks for your help.
The application worked with the version 7.0.0.140.
And I just changed the dll to 7.0.0.234, no code change and I have this error.


I tested few things and the line that raises concern is : 

this.WhereClauseSQL = "WHERE OccupationSolId IN (" + whereClause.ToString() + ")";



If I comment that line, I had no problem anymore. But I need this whereClause for my MssqlFeatureLayer ;-(



Thanks for your help.

Regards.

Steph.








Hi Steph, 
  
 Thank you very much for the important information, but sorry that I was out of office before this week, I will try to have a check if we did any changs these days, please let me know if is’s urgent for you. 
  
 Best Regards, 
 Johnny

Hi Steph, 
  
 Thank you very much for the important information, but sorry that I was out of office before this week, I will try to have a check if we did any changs these days, please let me know if is’s urgent for you. 
  
 Best Regards, 
 Johnny

Hi Steph, 
  
 Thank you very much for the important information, but sorry that I was out of office before this week, I will try to have a check if we did any changs these days, please let me know if is’s urgent for you. 
  
 Best Regards, 
 Johnny

Hi Steph, 
  
 Thank you very much for the important information, but sorry that I was out of office before this week, I will try to have a check if we did any changs these days, please let me know if is’s urgent for you. 
  
 Best Regards, 
 Johnny

Hi Johnny,  
  
 have you a visibility into the correction time of this item ? 1 day , few days or more ? 
 I wanted to change the dll version because of the error for ecw (ie. post "error ecw") and you said that I have to change the dll version. 
 Do you think that next week, the problem will be solved ? 
 Thanks. 
 Regards. 
 Steph.

Hi Steph, 



Thanks, for your waiting, we tried to recreate your problem, but it didn’t show up, would you please provide us the full content of this.WhereClauseSQL, and if possible, providing your data will be highly appreciated. 



Another idea may not directly solve the problem but will be helpful to narrow the bug location is to use following code to get the executed sqlsatement then try it directly in sql server:



private void DisplayMap_Load(object sender, EventArgs e)

{
MsSql2008FeatureLayer featureLayer = new MsSql2008FeatureLayer();
MsSql2008FeatureSource)featureLayer.FeatureSource).ExecutingSqlStatement += new EventHandler<ExecutingSqlStatementMsSql2008FeatureSourceEventArgs>(DisplayShapeMap_ExecutingSqlStatement);
}


void DisplayShapeMap_ExecutingSqlStatement(object sender, ExecutingSqlStatementMsSql2008FeatureSourceEventArgs e)
{
var sqlStatemen = e.SqlStatement;
}
Waiting for your further information. 



Thanks 



Summer

Hi summer, 



It’s difficult to send you our “real application” so I create a small project and I can reproduce the error.

So in zip file BandeEnherbee.zip, there the window of wpf project and .csproj.

And in Thinkgeo.zip is a database with one table)

And if you active a whereClause, I have exception and if i comment, i do not have an exception.



I hope that’s help you.



Thanks.

Regards.

Steph. 




BandeEnherbee.zip (3.1 KB)
Thinkgeo.zip (171 KB)

Hi Steph, 
  
 Thanks for your sample and data, we have recreated the problem, now it is solved would you please get the latest dll(7.0.0.243 still in build will be available in hours) and try it again? 
  
 Thanks, 
  
 Summer

Hi Summer,  
  
 Thanks.  
 This correction will be in the production builds ? 
  
 Thanks. 
 Regards. 
 Steph 
  


Hi Steph, 
  
 Thanks for your query, and the correction will be in production builds, would you please try it? 
  
 if you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer

Hi summer, 



I downloaded the dll 7.0.244 and i didn’t have the error anymore.

Thanks.

But, I compared the behavior of my application between the dll 7.0.244 and 7.0.140 and I have a difference of behavior when I edit a polygon

The node disappear when I edit or cut a polygon ie. screenshot (there is the number of version in the name of the files).



For information, for editing, cutting, I used the sample SnapToLayerEditInteractiveOverlay so the code is :

 WpfMap.EditOverlay = OutilsOvLyr.SnapEditOverlay((InMemoryFeatureLayer)OutilsOvLyr.GetLyr(MapVm.OvSelectLyrs, ConstantsMap.NOMINMEMORYLAYERSNAP), MapVm.ToolsMapViewModel.DistanceSnap);



And SnapEditOverlay is  : 

/// 
        /// Pour le mode édition avec snapping
        /// 
        /// 
        /// <returns></returns>
        internal static SnapToLayerEditInteractiveOverlay SnapEditOverlay(InMemoryFeatureLayer inMemSnap, int distSnap)
        {
            SnapToLayerEditInteractiveOverlay snap = new SnapToLayerEditInteractiveOverlay();
            //Sets the PointStyle for the non dragged control points.
            snap.ControlPointStyle = new PointStyle(PointSymbolType.Circle, new GeoSolidBrush(GeoColor.StandardColors.PaleGoldenrod), new GeoPen(GeoColor.StandardColors.Black), 8);
            //Sets the PointStyle for the dragged control points.
            snap.DraggedControlPointStyle = new PointStyle(PointSymbolType.Circle, new GeoSolidBrush(GeoColor.StandardColors.DarkOrange), new GeoPen(GeoColor.StandardColors.Orange, 2), 10);
            snap.SelectedControlPointStyle = new PointStyle(PointSymbolType.Circle, new GeoSolidBrush(GeoColor.StandardColors.Red), new GeoPen(GeoColor.StandardColors.Red, 2), 10);
            snap.ToSnapInMemoryFeatureLayer = inMemSnap;
            snap.ToleranceType = ToleranceCoordinates.World;
            snap.Tolerance = distSnap;
            snap.LabelDisplay = true;
            return snap;
        }
Above, I defined the style of the points when I selected one or when I dragged one, but I didn’t see the points when I edit.

I joined the class SnapToLayerEditInteractiveOverlay that I use.



And I have an another question : 

I wanted to change dll because I had an error (ie error ecw post) So with these dll, the error is resolved ?



Thanks for your help.

Regards.

Stéphanie.




SnapToLayerEditInteractiveOverlay.cs (13.6 KB)

Hello again ;-(



In my previous post, I downloaded screen shot but I didn’t see as attachments. 

So I create a new topic, sorry.



Dll 7.0.0.140 : 

Selected node











Cut mode

Edit mode







With dll 7.0.244 : 







Cut mode : 







Thanks.



Regards.

Stéphanie.








Hi Steph, 
  
 Thanks for your post, sorry the problem looks not so clear, if I miss any point please let me know. 
  
 I want to make sure the problem came from 7.0.0.244 or 7.0.244.0, today I tested "Track and edit shapes" sample for 7.0.0.244, the behavior looks just the same as your screen shot of 7.0.0.140. When edit any vertex, the red point appear.  
  
 If you want to upload mulitply images for compare, maybe you want to put them in a docx file then upload it. 
  
 Regards, 
  
 Don

Hi Don,  
  
 In fact, my problems came from 7.0.244 dll. (i downloaded in the first time these one because the dll in the production build were not available yet) 
 I downloaded the 7.0.0.245 (production build) and I have the same behavior as the dll 7.0.0.140. 
 So thanks.  
 And yes it would have been more clearer if I put the images in a docx file. Sorry ;-( 
 Regards. 
 Steph. 


Hi Steph, 
  
 That’s strange because I still can get the red vertex when edit shapes in 7.0.0.245. 
  
 I just use the sample “Track and edit shapes” for test that. 
  
 If I miss any important information or misunderstand your problem please let me know. 
  
 Regards, 
  
 Don 
  


Hi Don,  
  
 I may be wrong words in my previous post but with dll 7.0.0.245, that works. I have the vertex visible with a point. 
 Thanks. 
 In fact, the problem came from the dll 7.0.244 (development build). I downloaded these one because in the production build, the dll 7.0.0.245 was not available yet. 
  
 Thanks. 
 Regards. 
 Steph.