2009-10-19 7 views
1

Nous utilisons PostSharp pour injecter des fonctionnalités de mise en cache, nous ne voyons ce problème que lorsque nous l'utilisons. Lorsque nous utilisons le printemps, le problème semble disparaître.System.AccessViolationException avec génération de proxy dynamique

Toute aide serait appréciée car, le problème est très difficile à reproduire. J'ai inclus la trace de la pile ci-dessous:

 
Attempted to read or write protected memory. 
This is often an indication that other memory is corrupt. 
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 

at System.Diagnostics.SymbolStore.SymWriter.CloseMethod() 
at System.Reflection.Emit.MethodBuilder.CreateMethodBodyHelper(ILGenerator il) 
at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock() 
at System.Reflection.Emit.TypeBuilder.CreateType() 
at Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType() 
at Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateCode(Type[] interfaces, ProxyGenerationOptions options) 
at Castle.DynamicProxy.DefaultProxyBuilder.CreateClassProxy(Type theClass, Type[] interfaces, ProxyGenerationOptions options) 
at Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type targetType, Type[] interfaces, ProxyGenerationOptions options, Object[] constructorArgs, IInterceptor[] interceptors) 
at Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type targetType, Type[] interfaces, IInterceptor[] interceptors) 
at NHibernate.Proxy.Poco.Castle.CastleProxyFactory.GetProxy(Object id, ISessionImplementor session) 
+0

similaires: http://issues.castleproject.org/issue/DYNPROXY-129 –

+0

similaires: https://groups.google.com/forum/?fromgroups#!topic/rhinomocks/WaapfXGTh-E –

Répondre

1

J'ai vu un problème récurrent similaire avec le projet que je travaille, ce qui en fait un usage intensif de Rhino Mocks.

Cela arrive dans .NET 3.5 sur des machines 64 bits en se moquant d'un grand nombre d'interfaces différentes.

Le bêta .NET 4.0 ne semble pas avoir ce problème.

+0

a une cause été trouvé pour ce problème? –

+0

Dans notre cas, nous venons d'éditer notre script de construction pour exécuter séparément nos assemblages de test séparés afin de réduire le nombre de types dynamiquement instanciés par test, ce qui réduit la probabilité du problème. Nous avons ensuite simplement mis à jour vers .NET 4.0 qui semblait le résoudre entièrement. Je suppose que c'était probablement un bug dans le code non géré dans les méthodes de réflexion MS. –

1

j'avais probelm même que je résolus par la configuration: pools d'applications -> Paramètres avancés -> 'Activer les applications 32 bits' True

Redémarrez IIS et WebSite.

Questions connexes