是这样的,原来这段程序是控制台下的,没有窗体界面!
我想在widnows application中使用他,就在有窗体(Form)界面的程序中使用他。
在能上网的情况下,是好用的,但是在不能上网的情况下,在Stream ReceiveStream = result.GetResponseStream();这一句中陷于死机状态,无法执行下去,
只能结束进程!
而在控制台程序中,我可以捕捉到异常,说明网络连接不上,而在windows application中
就捕捉不到了!

解决方案 »

  1.   

    哦,这样阿,老问题了,是你太偷懒了
    你要先对是否连接网络做一个判断,用try catch
    如果已经在网上了,才继续执行,如果没有在网上就不执行。而且记住,每次一段网,一定要从头判断才行。还有,try catch这个东西比较怪,你非得抓住它判断故障的这个点,如果你抓不住,出来的你也看不懂,和编译器这个出错指示差不多的
      

  2.   

    大哥阿,问题不是我找到故障,而是我根本就抓不到故障阿,好我听你的,
    但是怎麽先对是否连接网络做一个判断?API?
    [DllImport("wininet.dll",EntryPoint="InternetGetConnectedState")]
    int InternetGetConnectedState(ref int lpdwFlags,int dwReserved);
    使用:
    int flags;
    if(InternetGetConnectedState(ref flags,0)!=0)
    {
         Console.Write("connected");
    }
    else
    {
         Console.Write("not connected");
    }
      

  3.   

    在窗体下捕捉异常不是:catch(Exception)  {MessageBox.Show (" 网络连接失败");   } 
      finally { }
    ----------------------------------------------
    是catch
    {MessageBox.Show (" 网络连接失败");} 
      finally
    { }
    如果你要用上面这一句,你可以设置为:
    catch(Exception ex) 
    {MessageBox.Show (" 网络连接失败,原因为:"+ex.Message);   }
    finally
    { }