gpt4 book ai didi

c# - 如何设置临时路径即。 Path.GetTempPath() 返回的值?

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:04 24 4
gpt4 key购买 nike

我试图在模拟下运行 ASP.net 2.0 站点,但似乎出了点问题。我撤消了对 ASP.Net IIS 配置小程序的更改。

但是现在我遇到了这个错误

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)

所以我尝试更改临时路径 - 但是 MSDN 没有说明它是如何得出这个值的。我尝试设置 TEMP 和 TMP 环境变量,但这也没有影响。它仍然指向 C:\Tmp 文件夹,由于某些管理策略,该文件夹被映射为一个驱动器,显然来自这些部分周围的类似 Mordac 的字符。

更新:看来更改现在才生效。 Path.GetTempPath 现在显示我为这 2 个环境变量设置的值。

最佳答案

您可以显式更改 XMLSerializer 的临时路径,而无需更改机器的环境变量。为此,将

<xmlSerializer tempFilesLocation="c:\\newTemp"/> 

在你的 app.config 文件中。

Scott Hanselman 有一篇题为“Changing where XmlSerializer Outputs Temporary Assemblies”的文章。

关于c# - 如何设置临时路径即。 Path.GetTempPath() 返回的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com