Asp.net 正在使用FileInfo查看文件何时更新。。。在另一台服务器上
嘿,伙计们,我正在为我们的一位客户向一家汽车经销商网站提供车辆信息。每晚午夜(ish),新的XML文件被上传到我们的FTP,并覆盖当前文件。目前,他有两个相同的网站,文件需要上传到两个网站,我正在考虑设置它,这样两个网站都可以使用相同的XML文件,这样我们就可以减少错误的风险,并获得成功 拉取该文件非常有效,两个网站都可以读取XML文件,并且在显示清单时没有问题。当我试图显示文件上次更新的日期时,出现了这个问题。我创建了一个小片段,读取文件更新的日期,并显示“上次更新:和日期”,但当我尝试引用非本地文件时,会出现一个错误,显示“不支持URI格式”。有人知道这样做的方法吗?或者如果可能的话 它现在是什么Asp.net 正在使用FileInfo查看文件何时更新。。。在另一台服务器上,asp.net,.net,system.io.fileinfo,Asp.net,.net,System.io.fileinfo,嘿,伙计们,我正在为我们的一位客户向一家汽车经销商网站提供车辆信息。每晚午夜(ish),新的XML文件被上传到我们的FTP,并覆盖当前文件。目前,他有两个相同的网站,文件需要上传到两个网站,我正在考虑设置它,这样两个网站都可以使用相同的XML文件,这样我们就可以减少错误的风险,并获得成功 拉取该文件非常有效,两个网站都可以读取XML文件,并且在显示清单时没有问题。当我试图显示文件上次更新的日期时,出现了这个问题。我创建了一个小片段,读取文件更新的日期,并显示“上次更新:和日期”,但当我尝试引用非
FileInfo fileInfo = new FileInfo(Server.MapPath("~/feed/VEHICLES.XML"));
DateTime timeOfCreation = fileInfo.LastWriteTime;
我试过的
FileInfo fileInfo = new FileInfo("http://www.autodealername.com/feed/VEHICLES.XML");
DateTime timeOfCreation = fileInfo.LastWriteTime;
这不好
FileInfo
使用来自底层文件系统的信息,而这些信息在HTTP上不可用。您需要考虑其他方法。如果以这种方式加载文件:
FileInfo fileInfo = new FileInfo("http://www.autodealername.com /feed/VEHICLES.XML");
该文件很可能是由该域/站点上的IIS或Web服务器检索到的,这与直接从文件系统打开该文件不同
我认为你至少有两种选择:
- 从网络共享中打开文件,如
李>\\machinename\ShareName\FileName
- 在远程服务器(WCF或XMLWeb服务)上创建一个服务端点,该服务端点将获取文件名并返回所需的信息李>
您可以尝试使用HEAD方法使用WebRequest并查找上次修改的头 这是我使用的代码
var web = WebRequest.Create("http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=4") as HttpWebRequest;
web.Method = "HEAD";
var response = web.GetResponse();
var lastModified = DateTime.Parse(response.Headers["last-modified"]);
Console.WriteLine(lastModified);
下面是http响应的样子(来自Fiddler)
您还可以将更新的字段添加到提要中,以便从提要本身获取上次更新的时间 RSS
pubDate
:
也许可以尝试使用FileSystemWatcher类,它可以在文件被更改、修改等时通知您
祝你好运 两个网站都在同一台服务器上吗?不,它们是分开托管的。一个更简单的方法可能是在其中一个网站上编写web服务,让实际的网站调用此web服务,而不是使用重复的XML文件。是的,我很可能会这样做,我只是想知道我是否对文件做了什么错事。第一段的最后一句话应该是“方便”吗?
HTTP/1.1 200 OK
Server: nginx/0.8.36
Date: Wed, 23 Nov 2011 17:37:44 GMT
Content-Type: image/png
Connection: keep-alive
Cache-Control: max-age=604800
Last-Modified: Tue, 06 Sep 2011 21:44:29 GMT
ETag: "6237328de6ccc1:0"
Content-Length: 19706
X-Cache: HIT
Accept-Ranges: bytes
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>W3Schools Home Page</title>
<link>http://www.w3schools.com</link>
<description>Free web building tutorials</description>
<!-- YOU COULD USE THIS -->
<pubDate>Thu, 27 Apr 2006</pubDate>
<item>
<title>RSS Tutorial</title>
<link>http://www.w3schools.com/rss</link>
<description>New RSS tutorial on W3Schools</description>
</item>
</channel>
</rss>
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Example Feed</title>
<link href="http://example.org/"/>
<!-- YOU COULD USE THIS -->
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>
</feed>