日期:2014-05-18  浏览次数:20896 次

关于 WebClient.DownloadData 程序自动退出的问题?**************100分求解**************

C# code

try
{
 byte[] buf = new WebClient().DownloadData(url);
}
catch
{
}



有时候程序在这里会自动退出,并且捕获不到任何异常!

求解决思路与方法!

------解决方案--------------------
是不是去找这个url了。
------解决方案--------------------
catch里面加个throw;
------解决方案--------------------
探讨
catch里面加个throw;

------解决方案--------------------
try
{

}
catch
{

}
这个格式结构就行呀

------解决方案--------------------
探讨
C# code

try
{
byte[] buf = new WebClient().DownloadData(url);
}
catch
{
}

你Catch什么都不做怎么捕获啊。你设置断点了?
try
{
byte[] buf = new WebClient().DownloadData(url);
}
catch(Exception ex)
{
throw ex;
}



有时候程序在这里会自动退出,并且捕获不到任何异常!

求解决思路与方法!

------解决方案--------------------
DownloadData这个倒没碰到过,不过它的底层Socket有极低的概率出这种无解的问题
------解决方案--------------------
探讨
DownloadData这个倒没碰到过,不过它的底层Socket有极低的概率出这种无解的问题

------解决方案--------------------
在catch中加throw是让错误能够显示出来,这样你能看到具体的错误类型,才好知道怎么解决
------解决方案--------------------
没见过你说的那种情况。
webclient 一般需要设置一些属性
可以这样试试
WebClient client = new WebClient();
client.Headers.Add("Accept:*/*");
client.Headers.Add
...
设置的属性,跟你请求的地址有关。你可以用vsniffer之类的工具拦截看看
byte[] data = client.DownloadData(sUrl);

即使异常,返回超时等也不会没有任何异常就退出。
------解决方案--------------------
LZ你说的是 你偶尔会出现这种情况?

如果我猜测的不错的话 数据量小的能通过 数据量大的不能通过

造成这个原因 很可能是超时的问题