이 문제에 대한 몇 가지 다른 스레드를 보았지만 해결 방법을 찾지 못했습니다. C# Windows를 실행할 때 디버그 모드에서 WebClient를 사용하여 웹 페이지의 데이터를 읽을 수 있습니다. 그러나 응용 프로그램의 실행 파일을 만들 자마자 웹 페이지에서 데이터를 읽을 수 없습니다. 여기에 내가 얻는 예외 :System.Net.WebException : 기본 연결이 닫혔습니다 : 기존 연결이 원격 호스트에 의해 강제로 닫혔습니다
System.Net.WebException : 내부 연결이 닫혔습니다 : 보내기에 예기치 않은 오류가 발생했습니다. ---> System.IO.IOException : 전송 연결에서 데이터를 읽을 수 없습니다 : 기존 연결이 원격 호스트에 의해 강제로 닫혔습니다. ---> System.Net.Sockets.SocketException : System.Net.Sockets.Socket.Receive (Byte [] 버퍼, Int32 오프셋, Int32 크기, SocketFlags 소켓 플래그)에서 의 기존 연결이 강제로 닫혔습니다 System.Net.Sockets.NetworkStream.Read에서 (바이트 [] 버퍼 오프셋 INT32, INT32 크기)
는 --- 내부 예외 스택 추적 --- 끝 여기
는 I 코드의 단편이다 사용하고 있습니다 :WebClient webClient = new WebClient();
webClient.UseDefaultCredentials = true;
webClient.Proxy.Credentials = CredentialCache.DefaultCredentials;
webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
string page = webClient.DownloadString(webPath + manPartNum);
이전에 말씀 드렸듯이 디버그에서 올바르게 작동하도록 할 수 있습니다. 비주얼 스튜디오의 모드이지만, 실행 파일을 생성하자마자 더 이상 웹 페이지에서 읽을 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 이 문제의 원인은 무엇입니까?
가능성은 거의 없습니다. 1) 컴파일러와의 종속성 문제로 인해 변경된 모든 내용이 실행 파일에 포함되지 않았습니다. 따라서 프로젝트를 완전히 다시 빌드 할 bin 폴더를 삭제할 수 있으므로 릴리스 모드가 다시 빌드됩니다. 2) 코드가 처음 작동합니다. 그러나 두 번째로 쿠키가 설정되고 쿠키가있는 코드를 실행하는 데 문제가 있습니다. IE 및 쿠키를 포함한 기록을 삭제하고 다시 시도하십시오. 또는 디버그 버전으로 돌아가서 여전히 작동하는지 확인하십시오 .3) 이전 연결이 닫히지 않고 서버가 동일한 IP 주소에서 둘 이상의 연결을 허용하지 않습니다. – jdweng
'UseDefaultCredentials'가 아니고 현재 공급하는 사용자 자격 증명에 충돌이 있습니까? 디버그에서 "성공"중이면 출력 창을 살펴볼 것입니다. 디버깅에서도 문제가 발생하지 않았는지 확인해야하지만, 아무렇게나 빠져 나갈 수는 있습니다. – DonBoitnott
빠른 응답을 보내 주셔서 감사합니다. 나는 너의 제안을 시도했다. 1) bin 폴더를 삭제하고 프로젝트를 완전히 다시 빌드했습니다. 성공하지 못했습니다. 2) 디버그 모드에서 프로그램을 다시 실행했지만 여전히 디버그 모드에서 올바르게 작동합니다. 3) 웹 클라이언트를 닫을 수있는 방법이 있습니까? weblient.Close()? –