9
votes

Pourquoi mon application Web ASP tente d'écrire dans C: \ Windows \ Microsoft.net \ Framework64 \ v4.0.30319 \ Fichiers temporaires ASP.NET?

Je rencontre des problèmes lors du déploiement d'une application Web ASP sur HostMysite. L'application a déjà été déployée sur leurs serveurs sur différentes plates-formes sans problème. Cependant, pour le domaine actuel et le serveur, je continue à obtenir l'erreur de serveur ci-dessous.

Erreur de serveur dans l'application '/ PropertyManagement'. L'identité actuelle (AdsafesecureWeb \ C116018-FHMONLINEA) n'a pas d'accès en écriture à 'C: \ Windows \ Microsoft.net \ Frameword64 \ V4.0.30319 \ Fichiers temporaires ASP.NET'. Description: Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle est originaire du code.

Détails d'exception: System.Web.httpException: l'identité actuelle (Adsafesecureweb \ C116018-FHMONLINEA) n'a pas d'accès en écriture à 'C: \ Windows \ Microsoft.net \ Frameword64 \ V4.0.30319 \ Fichiers temporaires ASP.NET' .

Erreur source:

Une exception non gérée a été générée lors de l'exécution de la demande Web actuelle. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées à l'aide de la trace de pile d'exception ci-dessous. Je sais que le code n'essaye pas explicitement d'écrire sur le répertoire temporaire .NET, mais je vous demandais si la demande est en quelque sorte à l'aide de ce répertoire pendant l'exécution. L'hôte continue à me dire que je dois configurer mon application pour ne pas utiliser le répertoire temporaire car ils ne fourniront pas d'accès en lecture / écriture. Quelqu'un peut-il me dire pourquoi ma demande pourrait essayer d'utiliser ce répertoire et de ce que je peux faire pour la configurer pour utiliser un autre répertoire que j'ai accès à. Je suis nouveau pour le développement ASP et j'ai besoin d'aide. Merci!

trace de pile:

[httpexception (0x80004005): l'identité actuelle (adsafesecureweb \ c116018-fhmonlinea) n'a pas d'accès en écriture à 'C: \ Windows \ Microsoft.net \ Framework64 \ v4.0.30319 \ Fichiers temporaires ASP.NET'.] System.web.httpruntime.setupcodegendirectory (compilationection de compilationection) +11650831 System.web.httpruntime.hostinginit (hostingenvironmentFlags hostingingFlags, limitence de ligne de stratégie, exception AppDomaincreationException) +323

[httpexception (0x80004005): l'identité actuelle (adsafesecureweb \ c116018-fhmonlinea) n'a pas d'accès en écriture à 'C: \ Windows \ Microsoft.net \ Framework64 \ v4.0.30319 \ Fichiers temporaires ASP.NET'.] System.web.httpruntime.firstrequeStinit (contexte httpcontext) +11612256 System.web.httpruntime.enSureFirstrequeStinit (httpcontext contexte) +141 System.Web.httpruntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest WR, HTTPContext Contexte) +4842149

Informations de version: Microsoft .NET Framework Version: 4.0.30319; Version ASP.NET: 4.0.30319.1


0 commentaires

5 Réponses :


24
votes

Le CLR copie toutes vos assemblées dans ce répertoire et compile vos fichiers .aspx / .asmx / etc et met la version compilée dans les fichiers ASP.NET temporaires.

Ceci doit être inscrit pour que votre site puisse être compilé à Runtime. p>

Edit: Voici un article MSDN Expliquer.

Comme indiqué dans les commentaires, si le fournisseur refuse de vous laisser écrire dans ce répertoire, vous pouvez le remplacer en mettant les suivants dans votre web.config code>, 'system.web' Section: P>

<compilation tempDirectory="c:\path\to\directory\you\can\write" />


5 commentaires

Nous accueillons le site via Hostmysite et nous continuons à me dire qu'ils ne permettront pas d'avoir accès à l'écriture à ce répertoire. Je discutais avec eux sur cette question entre autres depuis des jours. Recommandez-vous que j'essaie de trouver une documentation MSFT qui indique clairement vos informations ci-dessus pour prouver qu'elles ne sont pas configurées correctement? Je n'ai eu que des problèmes avec cet hôte depuis qu'ils ont commencé à ré-plateformer il y a 6 à 8 mois. Naturellement, l'application fonctionne bien dans notre environnement de développement.


La personne de soutien dont vous parlez n'est probablement pas comprise. Cet article de MSDN l'explique. Si ce qu'ils disent, c'est vrai, le site presque tout le monde serait brisé. Si elles DO vous donnent un répertoire, vous pouvez écrire sur, vous pouvez définir cela dans le web.config Pour utiliser ce répertoire .


Voici un meilleur lien vers le TempDirectory réglage. Fondamentalement, vous ferez à l'intérieur de votre élément dans web.config .


Merci, je l'ai trouvé dans votre article peu de temps après avoir posté le commentaire. Cela a parfaitement fonctionné. Merci de votre aide.


Vous venez de remarquer que cela se produira dans Windows 8 "Preview de version", donc je suppose que certains paramètres par défaut ont changé? Avec exactement le même installateur. Je ne reçois pas cette erreur dans l'une des: Windows 7 ou Server 2008 R2, ou XP SP3



8
votes

Ajoutez l'identité du pool de votre application au groupe IIS_IUSRS du serveur.


1 commentaires

Brillant! J'avais ajouté le contrôle total aux fichiers ASP.NET temporaires pour mon utilisateur d'APPLOOL. Mais après avoir ajouté l'utilisateur d'Apppool au groupe IIS_IUSERS, je pourrais supprimer la permission de contrôle complet et tout fonctionnait parfaitement. Merci beaucoup!



1
votes

J'ai dû définir l'identité du pool d'applications à Networkservice Puis ajoutez l'utilisateur Connexion à mon site Web (l'utilisateur que vous connectez «Connexion» dans les paramètres IIS sous Paramètres de base pour votre site Web) au groupe IIS_IUSRS


0 commentaires

0
votes

peut également réinstaller ASP.NET, recherchez les étapes ci-dessous:

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
aspnet_iis -i


1 commentaires

Voulez-vous dire aspnet_regiis?



1
votes

J'ai eu cette erreur lorsque j'ai défini les informations d'identification du chemin physique (dans les paramètres avancés) sur le compte de mon pool de l'application.

Dans mon cas, la solution consistait à réinitialiser les informations d'identification du chemin physique à "Utilisateur d'applications" et à corriger mon erreur d'origine à l'aide de Cette réponse < / a>, à savoir réinitialiser l'authentification anonyme à l'identité du pool d'applications, que, pour ce site spécifique, IUSR, un utilisateur qui n'avait pas accès au chemin de candidature (puisque nous utilisons un utilisateur spécifique de l'identité de la piscine App). < / p>


0 commentaires