所以我使用" Updater.exe "这是在 webserver 上阅读 XML 文件。更新程序检查程序的新版本是否可用传输新文件(替换旧文件)并运行它。 (文件名是乱码,因为我不希望用户直接运行它,它必须通过更新程序(在p.StartInfo.UseShellExecute = false;的帮助下运行它)。)
我现在遇到了一个非常奇怪的错误"或者我应该如何称呼它。
让我说我在1周后制作新版本。我更新了应用程序的汇编信息和XML文件版本。现在,当我运行UPDATER.exe时,他没有看到新的更新的XML内容,告诉他新版本可用。因为我想通过我的网络浏览器检查文件,它也显示了OLD内容(以前的版本)含义,应用程序是DATE,这是假的。
在我按下"刷新" Chrome中的按钮,我显示的内容已更新并再次运行Updater.exe 正常运行。
我没有任何IDEA实际发生的事情。什么"刷新"浏览器中的页面与我的应用程序有关吗?
从MSDN检查XMLTextReader类,它说:
代表一个提供快速,非缓存,仅向前访问XML数据的读者。 所以,是的,在互联网上搜索告诉我应该查找&# 34;高速缓存"问题,让我在阅读课程描述时更加困惑。经过这么长时间没有更新后在浏览器中刷新后,所有下一次更新都正常工作。似乎"大停顿"总是会出现这个问题。
无论如何,我很想找到解决方案。也许只是我有这个问题。但我不想从使用该应用程序的用户那里看到这个问题。他们没有时间或知识去刷新"任何东西。它必须工作。
XML示例如下:
<?xml version="1.0" encoding = "utf-8" standalone="yes"?>
<Application>
<version>2.0.0.16</version>
<url>http://server/folder/gibberish.extension</url>
</Application>
我使用一些代码来读取XML。
Version newVersion = null;
string xmlUrl = "http://server/folder/file.xml";
XmlTextReader reader = null;
try
{
reader = new XmlTextReader(xmlUrl);
reader.MoveToContent();
string elementName = "";
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Application"))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
elementName = reader.Name;
}
else
{
if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue))
{
switch (elementName)
{
case "version":
newVersion = new Version(reader.Value);
break;
case "url":
downloadUrl = reader.Value;
break;
}
}
}
}
}
}
catch (Exception ee)
{
//catch error
}
我尽力在这里详细描述问题(用我简单的英语知识)。我没有运气搜索互联网。我希望这不会导致重复。如果您有任何其他问题,请随时提出。我一定会给你解决这个奇怪谜题所需的所有信息。
最诚挚的问候,MiKE
答案 0 :(得分:0)
我想到的第一件事就是CDN。你使用任何类型的CDN,如CloudFlare? CloudFlare和类似的CDN会在短时间内缓存您的内容,从而导致这种影响。