Question

Dans notre projet SharePoint 2010, nous utilisons LINQ sur SharePoint pour obtenir une liste de configurationItems. Dans nos environnements de test, nous n'avons jamais eu de problèmes pour récupérer les données de cette liste. Sur notre environnement de production, nous sommes maintenant parfois (nous ne pouvons pas trouver de modèle pour le moment), il obtient une exception de référence nulle lors du fait de parcourir les éléments de la liste.

Vous trouverez ci-dessous l'exception que je suis jetée du Linq au code SharePoint:

Object reference not set to an instance of an object. StackTrace: 
at Microsoft.SharePoint.Linq.FieldRef.GetHashCode()
at Microsoft.SharePoint.Linq.FieldRef.FieldRefEqualityComparer.GetHashCode(FieldRef obj)
at System.Linq.Set`1.InternalGetHashCode(TElement value)  at System.Linq.Set`1.Find(TElement value, Boolean add)  at System.Linq.Enumerable.d__7a`1.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)  at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)  at Microsoft.SharePoint.Linq.SelectMappingInfo.GetDistinctMappedFields()
at Microsoft.SharePoint.Linq.Rules.PushDownProcessor.SelectWithInfoOp.PushDownSelect(Context ctx)
at Microsoft.SharePoint.Linq.Rules.PushDownProcessor.SelectWithInfoOp.Process(Context ctx)
at Microsoft.SharePoint.Linq.Rules.GuardedRule`4.c__DisplayClass7.b__6(TSourceBase src, TContext ctx)
at Microsoft.SharePoint.Linq.Rules.RewriteRule`2.Apply(TNode src, TContext ctx)  at Microsoft.SharePoint.Linq.Rules.CacheRule`3.Apply(TSource src, TContext ctx)  
at Microsoft.SharePoint.Linq.Rules.PushDownProcessor.b__0(Expression e, Context ctx)
at Microsoft.SharePoint.Linq.Rules.ChildRule`2.Apply(TNode src, TContext ctx)  at Microsoft.SharePoint.Linq.Rules.PushDownProcessor.b__3(Expression e, Context ctx)
at Microsoft.SharePoint.Linq.Rules.RewriteRule`2.Apply(TNode src, TContext ctx)  at Microsoft.SharePoint.Linq.Rules.CacheRule`3.Apply(TSource src, TContext ctx)  
at Microsoft.SharePoint.Linq.SPLinqProvider.Rewrite(Expression expression, List`1& assumptions)
at Microsoft.SharePoint.Linq.SPLinqProvider.RewriteAndCompile[T](Expression expression, List`1& assumptions)
at Microsoft.SharePoint.Linq.LinqQuery`1.GetEnumerator()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)  
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)  
at Common.Configuration.ConfigurationRepository.GetConfiguration(String siteUrl) InnerException:

Source: Microsoft.SharePoint.Linq TargetSite: Int32 GetHashCode()

Et ici le code que nous utilisons dans notre méthode GetConfiguration.

using (SpDataContext dataContext = new SpDataContext(siteUrl))
{
    result = new ConfigurationModel()
    {
        Configurations = (from item in dataContext.GasportConfiguration
                          select new ConfigurationItem()
                          {
                              Key = item.Key,
                              Value = item.Value,
                              Environment = (Environment)Enum.Parse(typeof(Environment), item.Environment.ToString(), true)
                          }).ToList()
    };
}

Quelqu'un a-t-il des idées sur la façon de suivre cela jusqu'à ce qui cause cette exception?

Mise à jour 31-05-2011:

Nous avons trouvé un modèle de quelle manière nous pouvons reproduire ce comportement sur notre environnement de production. Et également sur notre environnement de test, nous avons également eu ce problème, à partir duquel nous avons extrait des fichiers de vidage de crash en utilisant ADPLUS.

Nous voyons ce comportement se produire après le recyclage du pool d'applications. La seule façon de corriger cette erreur est d'effectuer un IISRET complet.

Dans l'analyse CrashDump, j'ai trouvé un message d'exception qui indique: Code d'exception: 0xc0000005 Informations d'exception: le thread essaie de lire ou d'écrire à une adresse virtuelle pour laquelle il n'a pas l'accès approprié.

J'espère que quelqu'un pourrait me donner plus d'informations sur cette exception?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top