在 ASP.NET 和 C# 中 Quartz.net 中映射路径

Map path in Quartz.net in ASP.NET & C#

我在 Asp.Net C# 中使用 Quartz.Net 来安排我的任务。我想写入文件,当我尝试不使用 MapPath 时,它正在按预期写入文件(Hello world)。

这是我写的代码。我试过 HostingEnvironment.MapPathServer.MapPath。它只是在写入没有任何内容的文件。

public void Execute(IJobExecutionContext context)
{
    StreamWriter file = new StreamWriter("destination_actualPath\hello1.txt", true);
    file.WriteLine("Hello world " + Server.MapPath("../Data"));
    file.Close();
}

是的,这个文件夹 Data 确实存在于我的项目目录中。这个函数在IJobclass里面。如果我编写一个新方法(除了执行),它正在写入文件(hello world 和路径),如果它在这个 Execute 方法中,它不会向文件写入任何内容。

你可以使用System.Web.Hosting.HostingEnvironment.MapPath方法。

尝试

file2.WriteLine("Hello World " + System.Web.Hosting.HostingEnvironment.MapPath("~/Data"));

HttpContext在Quartz.net中是不允许的,所以我们必须用HostingEnvironment代替。这里我们通常使用~而不是../来引用虚拟路径。我想这是你的错误。