C# 每次我们上传新的二进制文件时都会有新的日志文件

C# 每次我们上传新的二进制文件时都会有新的日志文件,c#,asp.net,.net,asp.net-mvc-2,logging,C#,Asp.net,.net,Asp.net Mvc 2,Logging,我们希望添加一些“开始代码”,以指示每次更新ASP.NET站点二进制文件时的日志文件。例如,我们有1.0版的二进制文件,日志写入到log_JhdsgGd1.txt。下次我们纠正一些错误,然后上传新的二进制文件版本1.1。现在,我们需要将日志文件写入其他一些log_h12jh3G.txt。我们不会更改项目中的任何版本号 我曾经尝试在应用程序_start()中生成一些启动代码,然后在编写日志的类中使用它。但不幸的是,它并不像人们想象的那样有效 更新后 protected void Applicat

我们希望添加一些“开始代码”,以指示每次更新ASP.NET站点二进制文件时的日志文件。例如,我们有1.0版的二进制文件,日志写入到log_JhdsgGd1.txt。下次我们纠正一些错误,然后上传新的二进制文件版本1.1。现在,我们需要将日志文件写入其他一些log_h12jh3G.txt。我们不会更改项目中的任何版本号

我曾经尝试在应用程序_start()中生成一些启动代码,然后在编写日志的类中使用它。但不幸的是,它并不像人们想象的那样有效


更新后

protected void Application_Start()
{
    Random r = new Random();
    Application["startCode"] = r.Next(100000).ToString();

    AreaRegistration.RegisterAllAreas();
    RegisterRoutes(RouteTable.Routes);
}

public static class Logger
{
    static internal void WriteLog(string msg, string dbname = null)
    {
        using (StreamWriter sw = new StreamWriter(String.Format("{0}{1}{2}", HttpContext.Current.Server.MapPath("log"), Path.DirectorySeparatorChar, String.Format("log_{0}.txt", HttpContext.Current.Application["startCode"]), true)))
        {
            string logEntry;
            if (!String.IsNullOrEmpty(dbname))
                logEntry = String.Format("{0} ({1}): {2}", DateTime.Now.ToString(), dbname, msg);
            else
                logEntry = String.Format("{0}: {1}", DateTime.Now.ToString(), msg);

            sw.WriteLine(logEntry);
            sw.WriteLine("------------");
            sw.Flush();
            sw.Close();
        }
    }
}

能否将SVN/GIT修订版链接到您的项目?或者计算二进制文件的MD5

你能发布不起作用的代码吗?请看更新的问题。从二进制文件计算MD5似乎很有趣。你能提供一些例子吗?我认为你不需要smth,所以简单的MD5哈希就可以了:
string filename=“myfile.exe”;MD5 MD5=MD5CryptoServiceProvider.Create();字符串md5=Common.EncodeHex(md5.ComputeHash(File.OpenRead(filename))
Common.EncodeHex()是对byte[]ar字符串进行编码的方法,您可以使用自己的方法(最好不要:)在这种情况下,您将不知道文件是何时更改的在
Application\u Start()中添加md5代码计算如何?