如何使用 ASP.NET C# Entity Framework 在 IIS 中创建 Directory/File

How to create Directory/File into IIS using ASP.NET C# Entity Framework

我的工作环境是:

当我在 Visual Studio 中调试时,directory/file 在此路径 ~/Content/Documentacion/log/ 中创建时没有问题(使用 VS 附带的 IIS Express)。

但是当我使用 IIS 7.5 发布解决方案并 运行 它时,directory/file 没有创建,我无法理解这个问题。

这是代码:

public void CreaLogATiempos(DateTime fin, bool sobrescribir = false)
{
    try
    {
        text = "xxxxx= ";
        string docPath = "~/Content/Documentacion/log/" ;
        var folder = System.Web.HttpContext.Current.Server.MapPath(docPath );

        if (!Directory.Exists(folder))
        {
            Directory.CreateDirectory(folder);
        }

        FileInfo MyFile = new FileInfo(System.Web.HttpContext.Current.Server.MapPath(docPath + this.archivo));

        if (!MyFile.Exists)
        {
            StreamWriter crear = new StreamWriter(System.Web.HttpContext.Current.Server.MapPath(docPath + this.archivo));
            crear.WriteLine(text);
            crear.Close();
        }
        else
        {
            StreamWriter crear = new StreamWriter(System.Web.HttpContext.Current.Server.MapPath(docPath + this.archivo), true);
            crear.WriteLine(text);
            crear.Close();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception: " + e.Message);
    }
}

也许有人可以看到错误或对问题有所了解?

  • Selectvisual studio中的项目,按ALT+Enter打开该项目的设置属性如下图

Picture

您可以按照以下方式在您的控制器中使用此文件夹

var physicalPath = Server.MapPath(Settings.Default.CompanyImagePath);

可以给你介绍一下TextWriterTraceListener吗?将此添加到您的 Global.vb 文件:

'adding tracing to a log.
Trace.Listeners.Clear()

Dim stream As New IO.FileStream(Server.MapPath("~/App_Data/trace.log"), IO.FileMode.Append)
Dim writer As New IO.StreamWriter(stream, System.Text.Encoding.UTF8)

Dim logListener As New TextWriterTraceListener(writer, "trace.log")
Trace.Listeners.Add(logListener)
Trace.AutoFlush = True

Trace.WriteLine($"{DateTime.Now.ToString} - class: Global.asax - method: Application_Start - message: Trace listener loaded.")

"~/App_Data"

中创建一个 trace.log 文件