J'essayais d'exécuter un site ASP.net 2.0 sous l'usurpation d'identité et quelque chose semble avoir mal tourné. J'ai défait mes modifications dans l'applet de configuration IIS ASP.Net.Comment régler le chemin Temp c'est à dire. la valeur renvoyée par Path.GetTempPath()?
Mais maintenant je suis coincé avec cette erreur
System.UnauthorizedAccessException: Access to the temp directory is denied. Identity 'MACHINE\ASPNET' under which XmlSerializer is running does not have sufficient permission to access the temp directory. CodeDom will use the user account the process is using to do the compilation, so if the user doesnt have access to system temp directory, you will not be able to compile. Use Path.GetTempPath() API to find out the temp directory location.
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Evidence evidence)
at System.Web.Services.Protocols.XmlReturn.GetInitializers(LogicalMethodInfo[] methodInfos)
J'ai essayé de changer le chemin temporaire - mais MSDN ne dit pas à la façon dont elle dérive cette valeur. J'ai essayé de définir les variables d'environnement TEMP et TMP mais cela ne l'a pas affecté non plus. Il pointe toujours vers le dossier C: \ Tmp qui est mappé en tant que lecteur en raison d'une certaine politique d'administration apparemment d'un personnage semblable à Mordac autour de ces parties.
Mise à jour: Il semble que le changement a maintenant pris effet tardivement. Path.GetTempPath affiche maintenant la valeur que j'ai définie pour ces 2 variables d'environnement.
J'ai essayé d'exécuter avec 2 comptes d'utilisateur admin et il donne toujours la même erreur et mentionne le nom d'utilisateur admin dans le message d'erreur. Donc, je ne suis pas sûr de ce qui se passe ici ... – Gishu
Avez-vous modifié la sécurité des fichiers sur le répertoire temp pour permettre à l'utilisateur ASPNET d'écrire des fichiers là-bas? À moins que vous ne soyez sûr de ce qui se passe sur procmon ou que le pool d'applications soit exécuté en tant qu'utilisateur admin (c'est-à-dire ne s'appuyant pas sur l'imputation), il y a une chance que ce soit le problème. Malheureusement, je dois me déconnecter maintenant depuis longtemps et j'espère que vous le ferez, ou quelqu'un d'autre! –