2010-09-09 17 views
1

J'appelle UpdateUser sur la classe AuthenticationBase dans l'assembly System.ServiceModel.DomainServices.Server installé par le programme d'installation WCF RIA Services. Cela fonctionne sur mon bureau Win 7 mais sur mon ordinateur portable Win 7, je reçois l'exception suivante.MethodAccessException sur AuthenticationBase <User> .UpdateUser Exception

Des idées sur ce que je devrais rechercher ou comment je peux déterminer ce qui est différent entre les deux systèmes? Merci.

System.MethodAccessException was unhandled 
     Message=Attempt by method 'System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationBase`1<T>.IsReadOnly(System.Reflection.PropertyInfo)' to access method 'System.Linq.Enumerable.Cast<System.ComponentModel.DataAnnotations.EditableAttribute>(System.Collections.IEnumerable)' failed. 
     Source=System.ServiceModel.DomainServices.Server 
     StackTrace: 
      at System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationBase`1.IsReadOnly(PropertyInfo propertyInfo) 
      at System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationBase`1.UpdateProfile(T user) 
      at System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationBase`1.UpdateUserCore(T user) 
      at System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationBase`1.UpdateUser(T user) 

Répondre

0

Il semblerait que vous n'ayez pas d'autorisation de réflexion sur l'instance d'ordinateur portable.

L'exécutez-vous peut-être sous un autre compte d'utilisateur?

Jetez un oeil à la MethodAccessException docs.

Aussi, assurez-vous que les deux sont en cours d'exécution de la même version de .NET comme il y a des changements de sécurité introduites dans .NET 4.

+0

Oui. Les deux comptes locaux. Comment puis-je déterminer si l'utilisateur dispose d'une autorisation de réflexion? –

+0

Vous devriez utiliser 'ReflectionPermission.Demand()'. Mise à jour de la réponse avec plus d'infos – leppie

+0

Je ne sais pas comment faire ça. J'ai cherché des indices mais n'en ai trouvé aucun. Est-ce que l'autorisation va sur l'assembly appelé ou sur l'assembly client appelant le code? –