C# 获取ASP.NET临时文件夹路径
根据我的C#代码,它不是从IIS/ASP.NET中运行的,我需要向ASP.NET临时文件夹添加一个用户帐户权限。(将我的网站添加到IIS时需要此选项。)我的本地系统上的文件夹是: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\临时ASP.NET文件C# 获取ASP.NET临时文件夹路径,c#,asp.net,.net,C#,Asp.net,.net,根据我的C#代码,它不是从IIS/ASP.NET中运行的,我需要向ASP.NET临时文件夹添加一个用户帐户权限。(将我的网站添加到IIS时需要此选项。)我的本地系统上的文件夹是: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\临时ASP.NET文件 我不喜欢将此路径硬编码到我的代码中,所以我想知道是否可以从.NET framework本身检索它?我认为这应该会有所帮助 在web.config/machine.config的编译标签下有一个部分,默
我不喜欢将此路径硬编码到我的代码中,所以我想知道是否可以从.NET framework本身检索它?我认为这应该会有所帮助 在
web.config/machine.config
的编译标签下有一个部分,默认情况下设置了路径。以下是该部分的属性
如果您在例如App\u数据中使用自己的临时文件夹,则会更加安全
不幸的是Path.GetTempPath()代码>不会返回此文件夹,因为它是asp.net内部文件夹
好消息是,您可以使用元素指定web.config中的文件位置来更改它 嗯。我不知道会这么复杂。由于没有更好的答案,我想出了这样的办法:
using System.Runtime.InteropServices;
string net_base = Path.GetFullPath(Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), @"..\.."));
string strTemp32 = string.Concat(net_base, @"\Framework\", RuntimeEnvironment.GetSystemVersion(), @"\Temporary ASP.NET Files");
string strTemp64 = string.Concat(net_base, @"\Framework64\", RuntimeEnvironment.GetSystemVersion(), @"\Temporary ASP.NET Files");
显然有两个临时文件夹——用于32位和64位进程。它基于并且也依赖默认的ASP.NET临时文件夹是硬编码的
如果找到更好的方法,请更正我?尝试System.Web.HttpRuntime.CodegenDir
获取当前应用程序存储ASP.NET临时文件的目录的物理路径 最简单的验证方法:
if (file.ContentLength > 0)
{
string temp = Path.GetTempPath();
var path = Path.Combine(temp, fileName);
file.SaveAs(path);
}
在web.config中:
<system.web>
<compilation tempDirectory="D:\MyTempFiles" />
</system.web>
您可以看到,需要此路径的C#代码不是从IIS下运行的。它作为提升的WinForm应用程序运行,因此当我调用Path.GetTempPath()
yes时,我得到,C:\Users\Administrator\AppData\Local\Temp\
,它应该返回用户的临时路径。我现在要删除我的答案。我错了。你为什么还需要路径?“从我的C代码中,我需要向ASP.NET临时文件夹添加一个用户帐户权限。”我正在编写一个。我不能用普通MSI做任何事情。默认情况下,它设置为“”。正如Garath在下面建议的那样,我可以将其填写到其他文件夹中。但它不会给我那个临时路径…谢谢,这是一种方法。如果我能推导出这个临时路径,我的情况会更简单。现在进行研究时,我找到了这个路径%FrameworkInstallLocation%\Temporary ASP.NET文件
,但我似乎无法扩展它。知道怎么做吗?来源如下:使用此链接。变量名为FrameworkIn StallLocation抱歉,我刚刚尝试了Environment.GetEnvironmentVariable(“FrameworkInstallLocation”)
并得到null
我不需要上面的部分。我所要做的就是更改temp目录以查看编译后的代码。谢谢