2017-01-10 8 views
0

Im делает приложение, чтобы сделать запрос POST для веб-приложения сервера для вставки в базу данных. Но я получил эту ошибку: error message boxПодключенное соединение было закрыто: соединение было неожиданно закрыто при использовании HttpWebRequest

The underlying connection was closed: The connection was closed unexpectedly.

Вот мой код:

foreach (var it in dict) 
       { 
         var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://mytestwebsitet.com/test.php"); 
        httpWebRequest.ContentType = "application/json"; 
        httpWebRequest.Method = "POST"; 
        httpWebRequest.KeepAlive = false; 
        System.Net.ServicePointManager.Expect100Continue = false; 
        httpWebRequest.Timeout = 1000000; 
        httpWebRequest.ReadWriteTimeout = 1000000; 
        httpWebRequest.ProtocolVersion = HttpVersion.Version10; 
        //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
        { 
         streamWriter.Write(it); 
         streamWriter.Flush(); 
         streamWriter.Close(); 
        } 

        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
        { 
         var result = streamReader.ReadToEnd(); 
        } 
        dataGridView1.Rows[dataGridView1.Rows.Count - co].DefaultCellStyle.BackColor = Color.Red; 
        co++; 

        httpResponse.Close(); 
       } 

я пытался так много способов, но это все еще не работает. Любая идея для этого?

+0

По моему опыту, эта ошибка произошла, когда запрос заставил службу на другом конце разбился (произошло много, когда я звонил в службу, написанную на C/C++). Вы исключили проблему в сервисе? –

+0

Ofcourse Я обработал свой код на веб-сервере и в моем сервисе. Я думаю, проблема здесь в тайм-ауте запроса, но я не знаю, как с этим справиться. – lamtacvu

+0

в webservice. Я установил тайм-аут для запроса 300, но в моем приложении для рабочего стола он didnttt дошел до него. Так что я думаю, что это не проблема в webservice – lamtacvu

ответ

0

[Solved] Это проблема максимального времени выполнения на сервере. Если кто-то получил свою проблему вроде меня, проверьте время выполнения на сервере, а не на клиенте.