2009-05-04 4 views
0
// break point set here>> 
webRequest = (HttpWebRequest)WebRequest.Create(server); 
webRequest.Timeout = 30000; 
webRequest.Credentials = CredentialCache.DefaultCredentials; 
webRequest.Method = "POST"; 
webRequest.ContentType = "application/x-www-form-urlencoded"; 
webRequest.KeepAlive = false; 


XmlDocument doc = new XmlDocument(); 
doc.AppendChild(request.ToXmlElement(doc)); 
byte[] data = XmlUtil.DocumentToBytes(doc); 

webRequest.ContentLength = data.Length; 

// write data to stream 
requestStream = webRequest.GetRequestStream(); 
requestStream.Write(data, 0, data.Length); 
requestStream.Close(); 

// get response 
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); 

dataStream = response.GetResponseStream(); 

위의 첫 번째 줄에 중단 점을 설정했지만 webRequest = (HttpWebRequest) WebRequest.Create (server); 이 메소드의 다음 줄에서 디버그 지점을 넘기지 않습니다. 마치 디버그 중단 점의 관점에서 사이트를 잃어버린 것처럼 결국 여기에서 dataStream과 같이 추가 한 디버그 지점을 계속 누르는 대신 라인의 아래쪽에 하나의 히트를 치는 것과 같습니다. 나는 그것이 궁극적으로 응답을 되찾기 때문에 어느 쪽도 잘못하지 않았다는 것을 안다. dataStream을 살펴보고 싶지만 요청을 내릴 때마다 다시 돌아 오지 않고 나머지 코드는 응답을 수신 한 후에이 메소드 외부로 실행됩니다.Losing Break Point

답변

0

귀하의 문제에 대해 조금 분명하지 않습니다. 주석 줄에 중단 점을 설정하고 있는데 거기에서 사라지고 있습니까? 만약 그렇다면 당신은 그것을 다음 줄에 놓거나 주석 지점에 no-op 줄을 삽입하고 거기에서 갈 수 있습니까? 주석 줄에 중단 점을 설정하면 디버거와 언어 서비스가 더 많은 작업을 수행해야하며 문제가 발생할 확률이 높아집니다 (여전히 작동해야하지만 좋은 진단 검사입니다). 실제 코드 줄에 중단 점을 설정하면 문제가 발생하지 않습니다.

실제 코드 줄을 설정하는 경우 "dissapear"를 정의 할 수 있습니까? 완전히 사라 졌습니까? 아니면 공백으로 나타나지 않습니까? 아니면주의 표시가 있습니까?

0

먼저 Visual Studio가 릴리스 모드가 아닌 DEBUG 모드로 빌드되도록 설정되어 있는지 확인해야합니다. RELEASE 모드에서 컴파일러는 명령문을 최적화하고 재정렬 할 수 있으므로 소스 파일의 코드가 중단 점에 대해 저장된 행 번호와 반드시 일치하지는 않습니다.

1

쓰레기, 나는 응답이 null을 리턴하고 코드의 다른 부분이 구현되어 중단 지점이 절대로 내 오류 처리에 부딪쳐 거기서 멈추지 않았기 때문에 결코 치지 않았 음을 발견했습니다.

+0

그건 내 첫 번째 생각이었습니다. 때로는 도구가 거짓말을하지 않습니다 :) – gbarry