我正在用C#为我的PC游戏创建一个更新程序,它基本上是向服务器发送一条Http消息,以找出游戏的最新版本。如果有较新的版本,它会下载必要的文件。为了下载这些文件,我使用了WebClient.DownloadFile()方法。论坛上有一些帖子详细介绍了这种方法的问题,但没有一个像我的那样。
我使用的方法如下:
WebClient webClient = new WebClient();<br/>
webClient.DownloadFile(sOriginFile, sDestinationFile);下载带有以下扩展名的文件时,我立即遇到了一个问题:
.xnb
.xgs
.xsb
.xwb我会得到一个异常,声明"The remote server returned an error:(404) Not Found“。
因此,作为实验,我将3个更常见的文件添加到同一目录中。
.txt
.doc
.jpg对于这些文件,DownloadFile()方法工作得很好。有人知道为什么这个方法不适用于前4种文件类型,但适用于后3种文件类型吗?
我还尝试了WebClient.DownloadData()和HttpWebRequest.GetResponse() (在设置请求之后),我甚至尝试了颠倒服务器上的扩展名(.bnx),但无论如何,我都会得到完全相同的异常。
如果有人真的想解决这个问题,这里有2个示例文件的链接(我尝试发布所有7个示例文件,但Stack Overflow只允许我发布2个链接):
http://www.facepuncher.com/Versions/CastleAbra/1.1/Sample.txt
http://www.facepuncher.com/Versions/CastleAbra/1.1/UiCursor.xnb
发布于 2011-08-06 02:26:43
很可能是您提到的文件类型的MIME设置在IIS中设置不正确。转到IIS服务器管理器-> MIME设置并相应地添加文件类型。
也许传输任何文件类型的更好的方法是只下载像这样的文件
file.xnb.dat
file.xgs.dat并在本地重命名它们。
-Matthias
https://stackoverflow.com/questions/6960837
复制相似问题