C# 监视时自动更新URL时出现问题

C# 监视时自动更新URL时出现问题,c#,C#,我们已经创建了一个Windows服务,用于监控每天接收数据的URL(从父网站获取速率,我们将每天在项目中更新该速率)。服务安装在本地系统和生产服务器中。 家长网站定期更新费率,但当我们从家长网站URL获取费率时,即使我们每分钟都在监控URL,我们也会有时间延迟。 例如,我们在本地系统的费率为晚上7:00,在服务器上的费率为晚上11:00,但家长网站上的实际更新时间为每天下午6:00 有谁能给我们解决这个问题的办法吗 编码我们使用的代码 string url = "http://dummyurl/

我们已经创建了一个Windows服务,用于监控每天接收数据的URL(从父网站获取速率,我们将每天在项目中更新该速率)。服务安装在本地系统和生产服务器中。
家长网站定期更新费率,但当我们从家长网站URL获取费率时,即使我们每分钟都在监控URL,我们也会有时间延迟。 例如,我们在本地系统的费率为晚上7:00,在服务器上的费率为晚上11:00,但家长网站上的实际更新时间为每天下午6:00

有谁能给我们解决这个问题的办法吗

编码我们使用的代码

string url = "http://dummyurl/path/test/test.zip";          
CheckDirectory(Application.StartupPath + "\\foldername");
string logFilePath = Application.StartupPath + "\\foldername\\filename.Zip";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 50000;         
try
{
    using (WebResponse response = (HttpWebResponse)request.GetResponse())
    {
        using (FileStream stream = new FileStream(logFilePath, FileMode.Create, FileAccess.Write))
        {
            byte[] bytes = ReadFully(response.GetResponseStream());
            stream.Write(bytes, 0, bytes.Length);
            stream.Flush();
            stream.Close();                     
        }
    }

    CheckDirectory(Application.StartupPath + "\\Extract");
    string extract = Application.StartupPath + "\\Extract\\";

    using (ZipArchive archive = ZipFile.OpenRead(logFilePath))
    {
        foreach (ZipArchiveEntry entry in archive.Entries)
        {
            if (entry.FullName.EndsWith(".csv", StringComparison.OrdinalIgnoreCase))
            {
                if (File.Exists(Path.Combine(extract, entry.FullName)))
                {
                    File.Delete(Path.Combine(extract, entry.FullName));
                }
                entry.ExtractToFile(Path.Combine(extract, entry.FullName));    
            }
        }
    }
}
我们已安装Windows服务,并已设置为每分钟监控:

protected override void OnStart(string[] args) 
{
    timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
    timer1.Interval = 60000; 
    timer1.Enabled = true; 
    timer1.Start(); 
}  

如何在服务器上获取请求日志?如果它是一个IIS,并且您正在使用它的内置日志记录,您将看到UTC时间。你观察到的另一个偏移量,一小时的休息时间,闻起来像是额外的夏令时。你们当地的时区是什么?我们刚才提到的时差只是一个例子,有时可能也需要一个多小时。好的。你是从哪里读到这些时间戳的?文件创建时间、文件访问时间、日志、哪些日志?我们安装了Windows服务,并设置为每分钟监视一次受保护的覆盖void OnStart(string[]args){timer1.appeased+=new ElapsedEventHandler(timer1_appeased);timer1.Interval=60000;timer1.Enabled=true;timer1.Start();}只计算相对于任何给定开始时间的小时数。我还不知道你在这里想要实现什么。请把所有关于你的时间测量的信息写在问题里,也许有人能帮上忙。IMO显示的下载和提取代码与实际问题无关。如何在服务器上获取请求日志?如果它是一个IIS,并且您正在使用它的内置日志记录,您将看到UTC时间。你观察到的另一个偏移量,一小时的休息时间,闻起来像是额外的夏令时。你们当地的时区是什么?我们刚才提到的时差只是一个例子,有时可能也需要一个多小时。好的。你是从哪里读到这些时间戳的?文件创建时间、文件访问时间、日志、哪些日志?我们安装了Windows服务,并设置为每分钟监视一次受保护的覆盖void OnStart(string[]args){timer1.appeased+=new ElapsedEventHandler(timer1_appeased);timer1.Interval=60000;timer1.Enabled=true;timer1.Start();}只计算相对于任何给定开始时间的小时数。我还不知道你在这里想要实现什么。请把所有关于你的时间测量的信息写在问题里,也许有人能帮上忙。IMO显示的下载和提取代码与实际问题无关。