J'ai un site très simple avec uniquement des fichiers statiques dans IIS 7 sur Windows Server 2008 SP2.
Lorsque j'essaie d'accéder à un fichier statique, j'obtiens une erreur 500. Si je renomme un fichier html pour avoir une extension aspx, cela fonctionne très bien.
Le site fonctionne également correctement lors de l'utilisation de l'identité intégrée pour le pool d'applications. Le problème se produit lorsque je passe à l'utilisation d'un compte personnalisé pour le pool d'applications. J'ai essayé d'utiliser des comptes locaux et de domaine pour exécuter le pool d'applications sous.
J'ai donné le contrôle total de ces comptes sur le répertoire et les fichiers du site Web.
L'activation du suivi révèle ce message d'erreur:
Nom du module:
Notification Web Core IIS : 2
HttpStatus: 500
HttpReason: Erreur de serveur interne
HttpSubStatus: 0 Code d' erreur
:
2147943746
Notification ConfigExceptionInfo : AUTHENTICATE_REQUEST Code d' erreur
: Soit un niveau d'emprunt d'identité requis n'a pas été fourni, soit le niveau d'emprunt d'identité fourni est invalide. (0x80070542)
Je n'ai pas eu de chance avec googler le code d'erreur.
la source
vous pouvez essayer de modifier le pool d'applications pour cette application virtuelle et accorder à ce nouveau pool des autorisations personnelles
pour accorder des autorisations pour un pool spécifique, il suffit d'accorder des autorisations à l'utilisateur "IIS APPPOOL \ YOUR_POOL_NAME"
la source
En plus de la réponse de Brownie (c'est exact, vous devez donner ce droit au compte du pool d'applications); si IIS vous envoie cette erreur lorsque vous l'appelez à l'aide d'un client WCF (+ l'authentification Windows est activée dans IIS), cela peut être dû au fait que les indicateurs du jeton NTLM donné à IIS ne lui permettent pas d'emprunter l'identité de l'appelant.
Modifiez la configuration de votre client à partir de ceci (par défaut):
Pour ça:
Consultez cet article pour plus de détails: emprunt d'identité et délégation dans WCF
la source