我用的是Quartz。Net中的Asp。Net c#来安排我的任务。我想写入一个文件,当我尝试不使用MapPath
时,它会按预期写入文件(Hello world)。
HostingEnvironment.MapPath
和Server.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
确实存在于我的项目目录。这个函数在IJob
类中。如果我写一个新方法(而不是执行),它会写入文件(hello world和path),如果它在这个Execute
方法内,它不会向文件写入任何内容。
try
file2.WriteLine("Hello World " + System.Web.Hosting.HostingEnvironment.MapPath("~/Data"));
HttpContext
在Quartz.net中是不允许的,所以我们必须使用HostingEnvironment
来代替。这里我们通常使用~
而不是../
来引用虚拟路径。我想这是你的错。
可以使用System.Web.Hosting.HostingEnvironment.MapPath方法