ASP.NET/IIS7.5 l'Écriture du Journal de Fichier ne fonctionne Pas (Autorisations, le contrôle de compte d'utilisateur, Config., ???)
Nous allons avoir de la difficulté à effectuer la migration de nos ASP.NET des applications pour Windows Server 2008 R2 x64 et IIS7.5. Le problème est que notre ASP.NET apps écrire les fichiers journaux et les fichiers journaux ne sont pas en cours d'écriture. La seule façon de le apps écrire leurs fichiers journaux est que si je suis connecté au serveur en tant qu'Administrateur local de l'utilisateur ou si je clic droit et exécuter en savoir Exécuter en tant qu'Administrateur, ni de ce qui est une solution acceptable pour nous.
Notre plate-forme est:
Windows Server 2008 R2 x64 (UAC agit du paramètre par défaut)
IIS7.5
ASP.NET 4.0 (à l'aide de l'authentification Windows et l'usurpation d'identité, à la fois sur le web.config)
Notre application mobile est installé:
D:[nom]
[appnameWebSite] (toutes les .aspx, .dll, etc. les fichiers sont ici)
\Log (l'application tente d'écrire dans le fichier journal de ce dossier)
Sur le serveur:
Créé une nouvelle Application de la Piscine (nom: [nom], .NET 4.0, le Mode Pipeline Géré: Classique, de l'Identité: ApplicationPoolIdentity, de Charger le Profil Utilisateur: False, toutes les autres propriétés sont les valeurs par défaut)
Créé d'application IIS pointant vers D:[nom][appnameWebSite] et l'a ajouté la nouvelle Application, Piscine (en Plein niveau de confiance)
Ont un domaine d'utilisateur dans le groupe Administrateurs local
Avec toute la configuration par défaut et les paramètres énumérés ci-dessus, le ASP.NET app pas écrire dans le fichier journal. L'application semble bien fonctionner dans le navigateur, mais pas de log.txt fichier.
Pour essayer de "réparer" ce problème, nous avons essayé beaucoup de choses:
Essayé de Pool d'Applications de réglage: Mode Pipeline Géré: Intégré
Essayé de Pool d'Applications de réglage: Identité: NetworkService
Essayé de Pool d'Applications de réglage: Identité: LocalSystem
Essayé de Pool d'Applications de réglage: de Charger le Profil Utilisateur: Vrai
A donné des Utilisateurs du groupe contrôle complet au système de fichiers pour notre application, la structure de dossier (essayé appname dossier, a tenté Journal de dossier uniquement, essayé appnameWebSite et dossiers de Journal uniquement)
A donné du pool d'applications IIS[nom] (correspondant à une nouvelle Application de la Piscine) de l'utilisateur un contrôle total du système de fichiers pour notre application, la structure de dossier (essayé appname dossier, a tenté Journal de dossier uniquement, essayé appnameWebSite et dossiers de Journal uniquement)
Aucune de ces choses aidé. À nouveau, l'application irait bien, aucun fichier journal créé.
Comme mentionné ci-dessus, la seule façon que le fichier journal est créé lorsque l'application s'exécute, c'est si nous connecter sur le serveur en utilisant le compte d'Administrateur local (ce qui est logique puisque c'est un super utilisateur) ou si nous courons à-dire comme un administrateur et d'élever ses privilèges.
Des suggestions? De l'aide? Des Questions?
Merci!
OriginalL'auteur lmttag | 2011-05-12
Vous devez vous connecter pour publier un commentaire.
J'ai essayé l'octroi de toute autorisation possible et n'était toujours pas arriver tous les fichiers journaux. Enfin je suis tombé sur cette qui ont suggéré de modifier la propriété de mon répertoire de fichiers journaux. J'ai vérifié, et le répertoire de la propriété a été définie pour le SYSTÈME. Je l'ai changé pour les Administrateurs et appliqué le changement de manière récursive. Je rebondi IIS, frappé d'une page web à partir du site dans le navigateur, et maintenant j'ai des fichiers journaux. Hourra!
Remarque: la chose qui à bout de moi a été de vérifier le journal des événements Système. J'ai été faire 15006 erreurs en disant: "le Propriétaire du fichier ou le répertoire journal C:\inetpub\logfiles\W3SVC1\some.log n'est pas valide. Ce pourrait être parce qu'un autre utilisateur a déjà créé le fichier journal ou dans le répertoire."
Merci beaucoup 🙂
OriginalL'auteur Oran Dennison
Bien, après jours d'essayer toutes les option IIS, les comptes utilisateur et de groupe, les autorisations de système de fichiers, l'Explorateur de Processus, etc., Je pense que nous avons fait ce travail:
Et de la réussite! Le fichier journal est écrit comme prévu n'importe quel utilisateur à l'aide de la ASP.NET application, et peu importe si ils sont en cours d'exécution sur le serveur lui-même ou à partir d'un poste de travail.
Je ne sais pas si la désactivation de Sécurité Renforcée d'Internet Explorer de Configuration sur le serveur est la "bonne" chose à faire ou s'il viole l'une des meilleures pratiques, mais il semble fonctionner pour nous.
Quelqu'un aurait-il quelque chose à ajouter?
OriginalL'auteur lmttag
J'ai eu du mal avec celui-ci pendant un certain temps. Le ApplicationPoolIdentity est un membre du groupe Utilisateurs et les Utilisateurs, le groupe a limité l'accès.
À partir de l'Explorateur, cliquez-droit sur le dossier où vous essayez d'écrire et d'aller à la Sécurité. Cliquez sur le bouton Avancé. vous verrez que les Utilisateurs ont l'autorisation Lecture et Exécution et le groupe d'Utilisateurs peut ou peut ne pas avoir les autorisations Spéciales. Si non, Cliquez sur Modifier les Autorisations et les donner aux Utilisateurs la possibilité de Créer des fichiers /écriture de données et Créer des dossiers /ajout de données. Ceci est limité à ce dossier. Je usially utiliser un sous-dossier, de sorte que je ne pas fournir l'accès en écriture à l'ensemble de mon site web.
Essayer de créer des fichiers journaux de nouveau. C'est la seule permission que j'avais besoin de jeu pour le faire fonctionner.
J'ai donné le domaine complet de l'utilisateur de contrôle (lecture, écriture, tout à la le dossier du Journal du système de fichiers (c'est à dire, l'utilisateur du domaine a obtenu le plein contrôle de D:\appname\Log). Toujours pas de fichier journal en cours de création. J'ai donné du pool d'applications IIS[nom] (correspondant à une nouvelle Application de la Piscine) de l'utilisateur complet de contrôle (lecture, écriture, tout à la le dossier du Journal du système de fichiers (c'est à dire, le pool d'applications IIS[nom] utilisateur a obtenu le plein contrôle de D:\appname\Log). Toujours pas de fichier journal en cours de création.
J'ai donné le local IIS_IUSRS du groupe de contrôle (lecture, écriture, tout à la le dossier du Journal du système de fichiers (c'est à dire, le groupe IIS_IUSRS se complète de contrôle à D:\appname\Log). Toujours pas de fichier journal en cours de création. Aucune de ces choses aidé. Donc, j'ai essayé de donner le plein contrôle de système de fichiers pour tous les utilisateurs et les groupes, et toujours pas de fichier journal. Je pense qu'il ne peut pas être un système de fichiers problème d'autorisations.
Toutes les suggestions? De l'aide? Des Questions? Merci!
Wow - je vais prendre un coup d'oeil à ma configuration, en cas il y a rien d'autre qui pourrait nous donner un indice. Cela ressemble à un problème de sécurité car il ne fonctionne pas lorsque vous exécutez en tant qu'Administrateur, mais vous avez donné toutes les autorisations pour tous les utilisateurs, donc, il faut travailler.
OriginalL'auteur Leons
Pour moi, le truc, c'était de donner l'accès en écriture pour
SYSTEM
etAdministrators
non seulement pour le dossier du journal lui-même, mais également chaque dossier dans le chemin d'accès. Ce n'est pas la façon dont les autorisations pour habitude de travailler dans Windows, mais IIS semble être vraiment très particulier à ce sujet. Pas qu'il y ait une bonne raison de supprimer ces deux de l'Acl pour commencer.Si vous pensez que cela soit le problème, vérifiez le Journal des Événements, en vertu de Journaux Windows /System. Ce problème se manifeste comme une Erreur d'entrée de la source HttpEvent, et se lit "Impossible de créer le fichier de log C:\path\to\logs\W3SVC1\u_extend1.log. Assurez-vous que le répertoire d'enregistrement est correct et que cet ordinateur a accès en écriture sur ce répertoire."
P. S. C'est vrai pour IIS 10, mais peut s'appliquer à d'autres versions.
OriginalL'auteur Roman Starkov