2014-01-08 21 views
1

的例外是在第一個 「使用」 拋出:使用(VAR OS = firstRequest.GetRequestStream())GetRequestStream()返回引發WebException超時......但只有在某些機器


我現在猜測是它與服務器發起的ssl信任問題有關,但是如果這是真的,那麼4個windows 7 pro機器中2個工作正常,2個拋出異常的情況有什麼區別,

異常詳細信息:

System.Net.WebException was unhandled 
    Message=The operation has timed out 
    Source=System 
    StackTrace: 
     at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 
     at System.Net.HttpWebRequest.GetRequestStream() 
     at MyCheckAPI.MyCheckLogic2.HttpPost4(String URI, String URI2, String Parameters1, String Parameters2) in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\MyCheckLogic2.cs:line 309 
     at MyCheckAPI.MyCheckLogic2.MobileGetCode2(String email, String pass) in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\MyCheckLogic2.cs:line 444 
     at RichTB.Integration.button5_Click(Object sender, EventArgs e) in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\Form1.cs:line 348 
     at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
     at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
     at System.Windows.Forms.Control.WndProc(Message& m) 
     at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
     at System.Windows.Forms.Button.WndProc(Message& m) 
     at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 
     at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 
     at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 
     at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 
     at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 
     at RichTB.Program.Main() in C:\Users\Ha-Erez\Desktop\RichTB\RichTB\Program.cs:line 18 
     at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 

它可能是什麼?

public static string HttpPost4(string URI, string URI2, string Parameters1, string Parameters2) 
{ 
     string respStr = String.Empty; 
     CookieContainer cookieJar = new CookieContainer(); 
     HttpWebRequest firstRequest = (HttpWebRequest)WebRequest.Create(URI); 
     try 
     { 
      firstRequest.CookieContainer = cookieJar; 
      firstRequest.KeepAlive = true; 
      firstRequest.ContentType = "application/x-www-form-urlencoded"; 
      firstRequest.Method = "POST"; 
      firstRequest.KeepAlive = false; 
      firstRequest.Timeout = 5000; 
      firstRequest.Proxy = null; 
      firstRequest.ServicePoint.ConnectionLeaseTimeout = 5000; 
      firstRequest.ServicePoint.MaxIdleTime = 5000; 

      byte[] bytes = System.Text.Encoding.UTF8.GetBytes(Parameters1); 
      firstRequest.ContentLength = bytes.Length; 
      using (var os = firstRequest.GetRequestStream()) 
      {  
       os.Write(bytes, 0, bytes.Length); 
       os.Close(); 
      } 

      using (HttpWebResponse firstResponse = (HttpWebResponse)firstRequest.GetResponse()) 
        { 
         using (var sr = new StreamReader(firstResponse.GetResponseStream())) 
         { 

          respStr = sr.ReadToEnd().Trim(); 
          Logger(DateTime.Now + " Login Response: " + respStr, 1); 

          sr.Close(); 
         } 
         firstResponse.Close(); 
        } 

        // cookieJar.Add(firstResponse.Cookies); 

        HttpWebRequest secondRequest = (HttpWebRequest)WebRequest.Create(URI2); 
        secondRequest.Method = "POST"; 
        secondRequest.ContentType = "application/x-www-form-urlencoded"; 
        // secondRequest.KeepAlive = true; 

        secondRequest.KeepAlive = false; 
        secondRequest.Timeout = 5000; 

        secondRequest.ServicePoint.ConnectionLeaseTimeout = 5000; 
        secondRequest.ServicePoint.MaxIdleTime = 5000; 

        // secondRequest.Headers["Set-Cookie"] = firstResponse.Headers["Set-Cookie"]; 
        secondRequest.CookieContainer = cookieJar; 
        byte[] bytes2 = System.Text.Encoding.UTF8.GetBytes(Parameters2); 
        secondRequest.ContentLength = bytes2.Length; 
        // httpWebRequest. 
        using (var os2 = secondRequest.GetRequestStream()) 
        { 
         os2.Write(bytes2, 0, bytes2.Length); 
         os2.Close(); 
        } 
        using (WebResponse secondResponse = secondRequest.GetResponse()) 
        { 
         using (var sr = new StreamReader(secondResponse.GetResponseStream())) 
         { 

          respStr = sr.ReadToEnd().Trim(); 
          sr.Close(); 
         } 
        } 

        return respStr; 
       } 
       catch (Exception ee) 
       { 
        Logger(DateTime.Now + " , "+ ee.Message +" , "+ ee.StackTrace, 1); 
       } 
       finally 
       { 
        firstRequest.Abort(); 
       } 
       return respStr; 
      } 
+2

什麼是例外細節? –

+0

iv'e重新編輯了該問題:添加了異常詳細信息 – Elazaron

回答

1

這是SSL證書問題這是由服務器處理不當。 當重定向到不同的服務器時,所有情況下都能正常工作。
也解決了在客戶端通過升級.net 4到.net 4.5

相關問題