我是C#表单的新手,最近尝试编写一个可以从我朋友的在线硬盘上下载文件的程序。
但我的程序只能正确下载低于1mb的文件大小,超过只能下载15bytes。
我做了一些似乎maxRecievedMessageSize
问题的研究,我试图检查我的app.config
,这就是我得到的
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
这是我的下载代码
MyHttpResponse httpDownload(String url)
{
string strHtml = string.Empty;
MyHttpResponse myResponse = new MyHttpResponse();
WebRequest myWebRequest = WebRequest.Create(url);
myWebRequest.Timeout = 10000;
HttpWebRequest myHttpWebRequest = (HttpWebRequest)myWebRequest;
myHttpWebRequest.Timeout = 10000;
myHttpWebRequest.Method = "GET";
myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows NT 5.2; Windows NT 6.0; Windows NT 6.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; MS-RTC LM 8; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 4.0C; .NET CLR 4.0E)";
myHttpWebRequest.CookieContainer = this.cookieContainer;
WebResponse myWebResponse = myHttpWebRequest.GetResponse();
Stream myStream = myWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myStream, Encoding.Default);
int index1 = url.LastIndexOf('/');
int index2 = url.LastIndexOf('?');
String FileName = url.Substring(index1 + 1, index2 - index1 - 1);
WebClient myWebClient = new WebClient();
//myWebClient.DownloadDataCompleted += new AsyncCompletedEventHandler(DownloadProgressCallback);
//trying to have this function but not sure how to code it right...
string filepath = textBox3.Text;
myWebClient.DownloadFileAsync(new Uri(url), filepath + "/" + FileName);
}
有人说DownloadFileAsync
可以&#34;绝对成功下载文件,因此问题是我的代码或我的设置&#34;
还有什么我可以提供更多的信息吗?
我已经看到了c# - maxReceivedMessageSize and maxBufferSize in app.config,但并不是真的明白它在说什么。
顺便说一下,不确定它是否与WCF相关。
答案 0 :(得分:0)
查看您收到的15k文件的内容。它可能包含重要信息。我希望它是包含错误消息的HTML内容。问题可能出在你朋友那边;不在你的身上。
某些(网络)服务设置了要提供的最大文件大小。