C# 如何更改ASP.NET的默认文件保存位置?

C# 如何更改ASP.NET的默认文件保存位置?,c#,asp.net,C#,Asp.net,下面有一个小函数,它检查文件是否存在,如果不存在,则创建一个新文件 public static void LogFile(string sEventName) { StreamWriter log; if (!File.Exists("NETSlogfile.txt")) { log = new StreamWriter("NETSlogfile.txt"); } else { log = File.AppendTe

下面有一个小函数,它检查文件是否存在,如果不存在,则创建一个新文件

public static void LogFile(string sEventName)
{
    StreamWriter log;
    if (!File.Exists("NETSlogfile.txt"))
    {
        log = new StreamWriter("NETSlogfile.txt");
    }
    else
    {
        log = File.AppendText("NETSlogfile.txt");
    }
    log.WriteLine("Data Time: " + DateTime.Now + " Event: " + sEventName);
    // Console.WriteLine(sEventName); // write responses to console for debugging
    log.Close();
}
现在我得到一个异常:

“对路径“C:\Program Files(x86)\IIS Express\NETSlogfile.txt”的访问被拒绝。”

我不太关心这一点,因为我真的不想将文件保存在这个位置,而且可以键入任何文件路径,但是,我想知道是否有办法将此默认文件路径从“C:\Program Files(x86)\IIS Express\”设置到其他位置


特别是行“log=newstreamwriter(“NETSlogfile.txt”);”在此默认文件路径“C:\Program Files(x86)\IIS Express\”创建一个新文件(或至少尝试创建),是否仍要更改该默认文件路径?

您无权将任何文件写入IIS目录,但可以在应用程序根目录或其中的任何子目录中写入文件

您可以在应用程序中创建一个文件夹,然后使用其路径来写入和读取文本文件,如下所示:

var filePath = Server.MapPath("~/Temp/NETSlogfile.txt");
if (!File.Exists(filePath))
现在使用filePath变量,它包含它的完整路径


假设您的应用程序目录中有一个名为Temp的文件夹。

在参数中指定完整路径可能吗?我知道我可以这样做,我只是好奇您是否可以更改默认文件路径。我认为任何程序,如果不指定路径,则默认保存位置将是可执行文件的位置。这是一个有用的替代方法,但我想知道是否可以将保存到的目录(IIS目录)更改为其他位置。您需要明确指定我认为的完整路径。好的,因此无法更改IIS目录的默认文件路径?唯一的替代方法是指定完整的文件位置?通常,当我们不指定任何路径时,它会写入应用程序运行的位置。