2009-06-19 12 views
1

Il est complexe, je vais essayer de le décrire ici. Si l'utilisateur et son groupe n'ont aucun droit d'accès à quoi que ce soit sur le site SP, l'utilisateur recevra une page SharePoint "Error: Access Denied" appropriée lors de la connexion. Si l'utilisateur a accès à quelque chose via son appartenance à un groupe, alors a. Si l'utilisateur est répertorié dans la liste Toutes les personnes, l'utilisateur peut se connecter et utiliser le site sans problème. b. Si l'utilisateur n'est pas répertorié dans la liste Toutes les personnes, l'utilisateur recevra une page d'erreur IIS 403. De retour sur le serveur, un événement "Un pool d'applications au service" [nom du pool d'applications IIS] "a rencontré une erreur de communication fatale avec le service de publication World Wide Web", ce qui indique un blocage dans le pool d'applications IIS. Si l'utilisateur est enthousiaste et continue d'essayer, il peut se bloquer fréquemment sur le pool d'applications et provoquer l'arrêt du pool d'applications et la fermeture de l'application. Nous utilisons l'authentification par formulaires et le fournisseur d'appartenance et le fournisseur de rôle Asp.net. Il semble que lorsque 2b se produit, SP est à plusieurs reprises (devrait être seulement une fois) appel à la méthode GetUser du fournisseur d'appartenance (jusqu'à ce que l'erreur de communication fatale arrive, je suppose). Je crois que c'est pour l'importation de profil utilisateur initila. Lorsque 2a se produit, la méthode GetUser n'est pas appelée.SharePoint 403 erreur pour les utilisateurs n'existent pas dans "Tous les gens"

Nous pouvons faire manuellement des choses comme ajouter l'utilisateur au groupe Visiteurs, puis sortir l'utilisateur du groupe Visiteurs, ce qui ajoutera l'utilisateur à la liste Toutes les personnes afin qu'il puisse se connecter. Au cours du processus manuel, le fournisseur d'appartenance GetUesr est également appelé, mais une seule fois et fonctionne correctement.

Ce problème vient juste de se produire récemment et seulement dans un environnement (la PRODUCTION!). Tout allait bien et les autres environnements UAT et l'environnement d'entraînement n'ont pas ce problème. Nous avons comparé les environnements et vérifié toutes les évidences et n'avons pas pu trouver de différences qui pourraient causer cela. La production a eu environ 110 utilisateurs, ce qui est plus que les autres environnements mais toujours pas beaucoup.

Quelqu'un peut-il aider?

+0

Si aucun code personnalisé n'est déployé sur votre système, vous obtiendrez de meilleures réponses sur http://serverfault.com. –

Répondre

0

Basé sur le commentaire ci-dessous, il semble que l'erreur se produit dans l'implémentation personnalisée de GetUser, après l'appel au service Web. Il se produit également seulement dans l'environnement qui a le plus de données. Par conséquent, la prochaine chose à vérifier est le code entre l'appel au service Web et le retour de getuser. Avez-vous des tableaux où la longueur maximale est définie? Faites-vous des suppositions quant aux données contenues dans un élément spécifique d'un tableau? Comment vérifiez-vous/consignez-vous que le service Web renvoie un résultat valide?

Hope this helps

Shiraz

+0

Merci pour cela. Nous avons implémenté le fournisseur d'appartenances personnalisé basé sur le fournisseur d'appartenance ASP.NET. Donc, ils sont définitivement les mêmes dans deux environnements. Une chose avec notre fournisseur d'adhésion est que la méthode GetUser appelle un service Web à partir d'une autre application Web. Le service Web signale que les appels sont exécutés avec succès. –

0

cause du problème trouvé. Le paramètre avancé de la liste Toutes les personnes est défini sur Aucune autorisation.