2009-09-23 6 views
0

J'ai une page de connexion personnalisée pour WSS 3.0 en utilisant l'authentification basée sur les formulaires. Il utilise la page principale simple.master fournie dans/_layouts, donc quand je vais sur ma page de connexion, je m'attends à voir l'écran bleu et jaune entourant certains composants de marque et de connexion. Cela arrive parfois. D'autre part, parfois je vais à la page de connexion et aucun des styles sont là; il affiche simplement mes composants de connexion sur un fond blanc. Si je tente de me connecter (que ce soit avec une connexion valide ou invalide) je reçois:La page de connexion SharePoint ne semble pas charger les styles depuis/_layouts, renvoie l'erreur "la valeur ne peut pas être nulle"

Value cannot be null. 
Parameter name: value at System.String.EndsWith(String value, StringComparison comparisonType) 
    at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PostAuthenticateRequestHandler(Object oSender, EventArgs ea) 
    at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

Ce nul ne se produit pas dans mon code de connexion personnalisé, il est dans les API SharePoint. Je les ai regardé avec Reflector et je crois que cette exception est le résultat de ne pas pouvoir charger quelque chose dans les ressources côté client, ce qui est étrange mais apparemment le cas.

Le problème se produit par intermittence. iisreset ou le recyclage de l'app pool ne semble pas le faire disparaître, mais parfois il semble juste se réparer pendant une heure ou deux. J'ai vu quelques références à ce problème sur le web mais aucune des solutions mentionnées n'a fonctionné pour moi. Il est facile de penser que vous avez résolu ce problème en raison de sa tendance à revenir soudainement à la normale pendant un certain temps.

J'ai vérifié les permissions du répertoire et l'identité du pool d'applications peut lire/_layouts et ses sous-dossiers.

Merci.

Mise à jour: J'ai des raisons de croire, mais peu de capacité à tester, que cela se produit lorsque vous copiez un fichier web.config en gros d'un serveur à un autre.

Répondre

0

Le problème semble être le fait qu'un web.config dans le répertoire layouts a la compilation par lots définie sur false.

J'ai eu le même problème. Le web.config dans C: \ Program Files \ Common Files \ Microsoft Shared \ extensions serveur Web \ 12 \ TEMPLATE \ LAYOUTS contenait cette ligne:

<compilation batch="false" batchTimeout="600" maxBatchSize="10000" maxBatchGeneratedFileSize="10000" /> 

La ligne devrait être:

<compilation batch="true" batchTimeout="600" maxBatchSize="10000" maxBatchGeneratedFileSize="10000" /> 

Pour plus d'informations: Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error

MISE À JOUR 30/11/2009: FYI. Il semble que cela ne résout pas réellement le problème, mais il semble augmenter le temps entre les erreurs.

+0

J'ai vu cette solution. Il a semblé fonctionner au début, mais c'était apparemment seulement parce que le problème est intermittent. Ça n'a pas arrangé ça pour moi. – strongopinions

0

Avoir eu le même type d'erreur avec FBA, juste trouvé un billet de blog indiquant que cela pourrait être un problème avec le fonctionnement de la fonction SPWebApplication.Lookup(). La version courte est: il semble que vous devez spécifier la valeur d'en-tête de l'hôte correcte (qui correspondent à vos zones) dans IIS si vous avez créé ou modifié manuellement le site Web IIS.

Voici le relevant blog post pour référence.

Questions connexes