6

Hemos actualizado nuestro proyecto de Silverlight 4 a Silverlight 5 y ahora estamos experimentando AccessViolationException de vez en cuando en diferentes lugares del código, esta excepción también está causando que el navegador se bloquee .Actualización de Silverlight 4 a Silverlight 5 causando AccessViolationException

¿Hay alguna directriz sobre cómo evitar que esto suceda?

añado el seguimiento de la pila donde el AccessViolationException se metimos:

[Managed to Native Transition] 
System.Windows.dll!MS.Internal.XcpImports.SetValue(MS.Internal.IManagedPeerBase obj, System.Windows.DependencyProperty property, string s) + 0x6f bytes 
System.Windows.dll!MS.Internal.XcpImports.SetValue(MS.Internal.IManagedPeerBase doh, System.Windows.DependencyProperty property, object obj) + 0x2ce bytes 
System.Windows.dll!System.Windows.DependencyObject.SetObjectValueToCore(System.Windows.DependencyProperty dp, object value) + 0xd6 bytes 
System.Windows.dll!System.Windows.DependencyObject.SetEffectiveValue(System.Windows.DependencyProperty property, ref System.Windows.EffectiveValueEntry newEntry, object newValue) + 0x35 bytes 
System.Windows.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.DependencyProperty property, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, System.Windows.DependencyObject.ValueOperation operation) + 0xe6 bytes 
System.Windows.dll!System.Windows.DependencyObject.RefreshExpression(System.Windows.DependencyProperty dp) + 0x47 bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.SendDataToTarget() + 0xff bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.SourceAcquired() + 0x5f bytes 
System.Windows.dll!System.Windows.Data.Debugging.BindingBreakPoint.BreakOnSharedType.AnonymousMethod__3() + 0x14 bytes 
[Native to Managed Transition] 
[Managed to Native Transition] 
mscorlib.dll!System.Delegate.DynamicInvokeImpl(object[] args) + 0x6b bytes 
mscorlib.dll!System.Delegate.DynamicInvoke(object[] args) + 0xb bytes 
BindingDebugging!TextPropertyPanelxaml_5.BindingOperation(object BindingState) + 0x30 bytes 
[Native to Managed Transition] 
[Managed to Native Transition] 
System.Windows.dll!System.Windows.Data.Debugging.BindingBreakPoint.BreakOnSharedType(System.Type emittedType, System.Windows.Data.Debugging.BindingDebugState debugState, int bindingNumber, int line, int column, System.Action callback) + 0xd5 bytes 
System.Windows.dll!System.Windows.Data.Binding.EnsureBreakPoint(System.Windows.Data.Debugging.BindingDebugState debugState, System.Action callback, bool canDelay) + 0x1ff bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.System.Windows.IDataContextChangedListener.OnDataContextChanged(object sender, System.Windows.DataContextChangedEventArgs e) + 0xa4 bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.DataContextChanged(object sender, System.Windows.DataContextChangedEventArgs e) + 0xc bytes 
System.Windows.dll!System.Windows.FrameworkElement.OnDataContextChanged(System.Windows.DataContextChangedEventArgs e) + 0x1e bytes 
System.Windows.dll!System.Windows.FrameworkElement.OnAncestorDataContextChanged(System.Windows.DataContextChangedEventArgs e) + 0x26 bytes 
System.Windows.dll!System.Windows.FrameworkElement.NotifyDataContextChanged(System.Windows.DataContextChangedEventArgs e) + 0xcb bytes 
System.Windows.dll!System.Windows.FrameworkElement.OnAncestorDataContextChanged(System.Windows.DataContextChangedEventArgs e) + 0x32 bytes 
System.Windows.dll!System.Windows.FrameworkElement.NotifyDataContextChanged(System.Windows.DataContextChangedEventArgs e) + 0xcb bytes 
System.Windows.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x47 bytes 
System.Windows.dll!System.Windows.DependencyObject.RaisePropertyChangeNotifications(System.Windows.DependencyProperty dp, object oldValue, object newValue) + 0x5e bytes 
System.Windows.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.DependencyProperty property, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, System.Windows.DependencyObject.ValueOperation operation) + 0xf3 bytes 
System.Windows.dll!System.Windows.DependencyObject.SetValueInternal(System.Windows.DependencyProperty dp, object value, bool allowReadOnlySet, bool isBindingInStyleSetter) + 0x248 bytes 
System.Windows.dll!System.Windows.FrameworkElement.DataContext.set(object value) + 0x28 bytes 
ContentManagerSilverlight!ContentManagerSilverlight.TextPropertyPanel.set_ItemDetails(ContentManagerClientTypes.ServiceLibrary.ItemDetails value) Line 132 + 0xd bytes 
ContentManagerSilverlight!ContentManagerSilverlight.PropertiesPanelControl.SetPanelsVisability(ContentManagerClientTypes.ServiceLibrary.ItemDetails p_item) Line 78 + 0x1f bytes 
ContentManagerSilverlight!ContentManagerSilverlight.PropertiesPanelControl.HandleEvents(Object p_sender, String p_propertyName, Object p_propertyValue) Line 130 + 0x35 bytes 
ContentManagerClientTypes!ContentManagerClientTypes.Messenger.Send(Object p_sender, String p_propertyName, Object p_propertyValue) Line 34 + 0x55 bytes 
ContentManagerSilverlight!ContentManagerSilverlight.LibraryViewModel.set_SelectedItemDetails(ContentManagerClientTypes.ServiceLibrary.ItemDetails value) Line 181 + 0x25 bytes 
[Native to Managed Transition] 
[Managed to Native Transition] 
System.Windows.dll!System.Windows.CLRPropertyListener.Value.set(object value) + 0x23 bytes 
System.Windows.dll!System.Windows.PropertyAccessPathStep.Value.set(object value) + 0xe bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValue() + 0x692 bytes 
System.Windows.dll!System.Windows.Data.Debugging.BindingBreakPoint.BreakOnSharedType.AnonymousMethod__3() + 0x14 bytes 
[Native to Managed Transition] 
[Managed to Native Transition] 
mscorlib.dll!System.Delegate.DynamicInvokeImpl(object[] args) + 0x6b bytes 
mscorlib.dll!System.Delegate.DynamicInvoke(object[] args) + 0xb bytes 
BindingDebugging!LibraryThumbViewxaml.BindingOperation(object BindingState) + 0x30 bytes 
[Native to Managed Transition] 
[Managed to Native Transition] 
System.Windows.dll!System.Windows.Data.Debugging.BindingBreakPoint.BreakOnSharedType(System.Type emittedType, System.Windows.Data.Debugging.BindingDebugState debugState, int bindingNumber, int line, int column, System.Action callback) + 0xd5 bytes 
System.Windows.dll!System.Windows.Data.Binding.EnsureBreakPoint(System.Windows.Data.Debugging.BindingDebugState debugState, System.Action callback, bool canDelay) + 0x1ff bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValueEnsureBreak() + 0x53 bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValueIfNecessary() + 0x68 bytes 
System.Windows.dll!System.Windows.Data.BindingExpression.TargetPropertyChanged(System.Windows.DependencyObject sender, System.Windows.DependencyProperty dp) + 0x2b bytes 
System.Windows.dll!System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x16 bytes 
System.Windows.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x54 bytes 
System.Windows.dll!System.Windows.Controls.Primitives.Selector.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x13 bytes 
System.Windows.dll!System.Windows.DependencyObject.RaisePropertyChangeNotifications(System.Windows.DependencyProperty dp, object oldValue, object newValue) + 0x5e bytes 
System.Windows.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.DependencyProperty property, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, System.Windows.DependencyObject.ValueOperation operation) + 0xf3 bytes 
System.Windows.dll!System.Windows.DependencyObject.SetValueInternal(System.Windows.DependencyProperty dp, object value, bool allowReadOnlySet, bool isBindingInStyleSetter) + 0x1c9 bytes 
System.Windows.dll!System.Windows.Controls.Primitives.Selector.UpdatePublicSelectionProperties(int oldSelectedIndex, int newSelectedIndex, object oldSelectedItem, object newSelectedItem) + 0xca bytes 
System.Windows.dll!System.Windows.Controls.Primitives.Selector.SelectionChanger.End() + 0x172 bytes 
System.Windows.dll!System.Windows.Controls.Primitives.Selector.SelectionChanger.SelectJustThisItem(int oldIndex, int newIndex) + 0x170 bytes 
System.Windows.dll!System.Windows.Controls.ListBox.MakeSingleSelection(int index) + 0x3e bytes 
System.Windows.dll!System.Windows.Controls.ListBox.HandleItemSelection(System.Windows.Controls.ListBoxItem item, bool isMouseSelection) + 0x7a bytes 
System.Windows.dll!System.Windows.Controls.ListBox.OnListBoxItemClicked(System.Windows.Controls.ListBoxItem item) + 0x7 bytes 
System.Windows.dll!System.Windows.Controls.ListBoxItem.OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs e) + 0x54 bytes 
System.Windows.dll!System.Windows.Controls.Control.OnMouseLeftButtonDown(System.Windows.Controls.Control ctrl, System.EventArgs e) + 0x38 bytes 
System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj, System.IntPtr unmanagedObjArgs, int argsTypeIndex, int actualArgsTypeIndex, string eventName, uint flags) + 0x28f bytes 
[Appdomain Transition] 
+1

No es una respuesta real, así que estoy poniendo esto en los comentarios. Pero parece que no estás solo: http://stackoverflow.com/questions/8495242/silverlight-5-accessviolationexception, http://forums.silverlight.net/t/245247.aspx/1, ... – Peter

+0

I Todavía estoy peleando con este. ¿Puedes reproducir esto? No puedo hacer que esto ocurra fuera de mi proyecto. – Aligned

+0

¿Estás usando los controles de Telerik? Han solucionado una ocurrencia de esto (He estado siguiendo algunos enlaces, copiando esta información aquí). – jv42

Respuesta

0

Mi conjetura es que es una instalación de tiempo de ejecución defectuosa o complemento del navegador o antivirus.

Solución de problemas de esta manera:

  1. ¿Qué muestran los registros de Drwatson? Tess Ferrandez tiene mucha información sobre cómo leer los registros de fallos. O publique su registro de fallas aquí.
  2. ¿Sucede con diferentes navegadores?
  3. ¿Puedes desactivar los complementos?
  4. ¿Sucede en todas las computadoras?
  5. ¿Su aplicación utiliza alguna automatización COM o PInvoke?
+2

Este error reaccour en diferentes computadoras (más de 2) y en diferentes navegadores. –

+0

Por favor, publique su registro de bloqueo. –

+0

También he adjuntado capturas de pantalla a la pregunta, pero esto es lo que recibo como excepción. System.AccessViolationException no se ha manejado Message = Intentó leer o escribir en la memoria protegida. Esto a menudo es una indicación de que otra memoria está corrupta. InnerException: –

3

He encontrado una fuente del problema (no estoy seguro de que haya resuelto todos estos problemas de AccessViolationException), pero mi sistema ahora es mucho más estable.

Al parecer, el uso de Oficina Negro temático de la última caja de herramientas, la combinación de cuadro de texto, causado este problema.

Lo que he hecho para resolverlo es recompilación este tema sin el estilo del cuadro de texto y la cuestión de AccessViolation ha desaparecido, en esta etapa no hicimos las pruebas de profundidad en todo el sistema, pero esto es resolviendo un problema que podría reproducir rápidamente, así que supongo que esto podría haber solucionado más problemas como ese.

Espero que haya ayudado a alguien.

Saludos,

Lior

2

Ok, he encontrado una solución. Anteriormente, tenía el conjunto de estilos/temas de la aplicación en el archivo Mainpage.xaml y el tema se reducía a todas las páginas de navegación secundarias en el tiempo de ejecución. esto estaba causando el problema de alguna manera.

Si configuro explícitamente el estilo página por página, ¡todo funciona!

Por lo tanto: (usando el tema toolkit BureauBlue)

xmlns:SystemColors="clr-namespace:System.Windows.Controls.Theming;  assembly=System.Windows.Controls.Theming.BureauBlue" 

<SystemColors:BureauBlueTheme> 
    <Grid x:Name="LayoutRoot"> 

. . .

1

El uso de la Oficina azul también hace que la misma System.AccessViolationException al actualizar una propiedad unido a un cuadro de texto.

La solución temporal que funcionó para mí fue copiar el estilo de TextBox del Theme dll en un ResourceDictionary que se fusionó en el diccionario de recursos App.xaml. Al hacerlo, evitó tener que especificar el tema en cada vista.

Los temas que uso son del kit de herramientas de abril de 2010. No sé si una versión posterior del kit de herramientas puede haber solucionado el problema.

Cuestiones relacionadas