Déploiement d’une application web ASP.NET avec SQL Server Compact à l’aide de Visual Studio ou de Visual Web Developer : définition des autorisations de dossier - 6 sur 12
par Tom Dykstra
Télécharger le projet de démarrage
Cette série de tutoriels vous montre comment déployer (publier) un projet d’application web ASP.NET qui inclut une base de données SQL Server Compact à l’aide de Visual Studio 2012 RC ou Visual Studio Express RC 2012 pour web. Vous pouvez également utiliser Visual Studio 2010 si vous installez la mise à jour de publication web. Pour une présentation de la série, consultez le premier tutoriel de la série.
Pour obtenir un didacticiel qui montre les fonctionnalités de déploiement introduites après la version rc de Visual Studio 2012, montre comment déployer SQL Server éditions autres que SQL Server Compact et montre comment déployer sur Azure App Service Web Apps, consultez déploiement web ASP.NET à l’aide de Visual Studio.
Vue d’ensemble
Dans ce tutoriel, vous définissez les autorisations de dossier pour le dossier Elmah dans le site web déployé afin que l’application puisse créer des fichiers journaux dans ce dossier.
Lorsque vous testez une application web dans Visual Studio à l’aide de Visual Studio Development Server (Cassini), l’application s’exécute sous votre identité. Vous êtes probablement administrateur sur votre ordinateur de développement et disposez de toute autorité pour faire quoi que ce soit à n’importe quel fichier dans n’importe quel dossier. Toutefois, lorsqu’une application s’exécute sous IIS, elle s’exécute sous l’identité définie pour le pool d’applications auquel le site est affecté. Il s’agit généralement d’un compte défini par le système qui dispose d’autorisations limitées. Par défaut, il dispose d’autorisations de lecture et d’exécution sur les fichiers et dossiers de votre application web, mais il n’a pas d’accès en écriture.
Cela devient un problème si votre application crée ou met à jour des fichiers, ce qui est un besoin courant dans les applications web. Dans l’application Contoso University, Elmah crée des fichiers XML dans le dossier Elmah afin d’enregistrer des détails sur les erreurs. Même si vous n’utilisez pas quelque chose comme Elmah, votre site peut permettre aux utilisateurs de charger des fichiers ou d’effectuer d’autres tâches qui écrivent des données dans un dossier de votre site.
Rappel : si vous recevez un message d’erreur ou si un élément ne fonctionne pas pendant le tutoriel, veillez à case activée la page de résolution des problèmes.
Test de la journalisation des erreurs et de la création de rapports
Pour voir comment l’application ne fonctionne pas correctement dans IIS (bien qu’elle l’ait été lorsque vous l’avez testée dans Visual Studio), vous pouvez provoquer une erreur qui serait normalement journalisée par Elmah, puis ouvrir le journal des erreurs Elmah pour afficher les détails. Si Elmah n’a pas pu créer un fichier XML et stocker les détails de l’erreur, un rapport d’erreurs vide s’affiche.
Ouvrez un navigateur, accédez à http://localhost/ContosoUniversity
, puis demandez une URL non valide telle que Studentsxxx.aspx. Vous voyez une page d’erreur générée par le système au lieu de la page GenericErrorPage.aspx , car le customErrors
paramètre dans le fichier Web.config est « RemoteOnly » et vous exécutez IIS localement :
Exécutez maintenant Elmah.axd pour voir le rapport d’erreurs. Une page de journal des erreurs vide s’affiche, car Elmah n’a pas pu créer un fichier XML dans le dossier Elmah :
Définition de l’autorisation d’écriture sur le dossier Elmah
Vous pouvez définir manuellement les autorisations de dossier ou en faire une partie automatique du processus de déploiement. La rendre automatique nécessite du code MSBuild complexe, et comme vous n’avez à le faire que la première fois que vous déployez, ce tutoriel montre uniquement comment procéder manuellement. (Pour plus d’informations sur la façon d’effectuer cette partie du processus de déploiement, consultez Définition des autorisations de dossier sur la publication web sur le blog de Sayed Hashimi.)
Dans Windows Explorer, accédez à C:\inetpub\wwwroot\ContosoUniversity. Cliquez avec le bouton droit sur le dossier Elmah , sélectionnez Propriétés, puis sélectionnez l’onglet Sécurité .
(Si vous ne voyez pas DefaultAppPool dans la liste des noms de groupes ou d’utilisateurs , vous avez probablement utilisé une autre méthode que celle spécifiée dans ce didacticiel pour configurer IIS et ASP.NET 4 sur votre ordinateur. Dans ce cas, découvrez l’identité utilisée par le pool d’applications affecté à l’application Contoso University et accordez l’autorisation d’écriture sur cette identité. Consultez les liens sur les identités de pool d’applications à la fin de ce tutoriel.)
Cliquez sur Modifier. Dans la boîte de dialogue Autorisations pour Elmah, sélectionnez DefaultAppPool, puis sélectionnez la zone Écrire case activée dans la colonne Autoriser.
Cliquez sur OK dans les deux boîtes de dialogue.
Retester la journalisation des erreurs et la création de rapports
Testez en provoquant à nouveau une erreur de la même manière (demander une URL incorrecte) et exécutez la page Journal des erreurs . Cette fois, l’erreur s’affiche sur la page.
Vous avez également besoin d’une autorisation d’écriture sur le dossier App_Data, car vous avez SQL Server Compact fichiers de base de données dans ce dossier et vous souhaitez pouvoir mettre à jour les données dans ces bases de données. Dans ce cas, toutefois, vous n’avez rien à faire d’autre, car le processus de déploiement définit automatiquement l’autorisation d’écriture sur le dossier App_Data .
Vous avez maintenant effectué toutes les tâches nécessaires pour que Contoso University fonctionne correctement dans IIS sur votre ordinateur local. Dans le tutoriel suivant, vous allez rendre le site accessible au public en le déployant sur un fournisseur d’hébergement.
Informations complémentaires
Dans cet exemple, la raison pour laquelle Elmah n’a pas pu enregistrer les fichiers journaux était assez évidente. Vous pouvez utiliser le suivi IIS dans les cas où la cause du problème n’est pas si évidente ; Consultez Résolution des problèmes liés aux demandes ayant échoué à l’aide du suivi dans IIS 7 sur le site IIS.net.
Pour plus d’informations sur l’octroi d’autorisations aux identités de pool d’applications, consultez Identités de pool d’applications et contenu sécurisé dans IIS via des listes de contrôle d’accès de système de fichiers sur le site IIS.net.