2010-06-16 4 views
1

로컬로 게시 한 웹 서비스가 있습니다. 웹 서비스를 테스트 할 HTML 페이지를 작성했습니다. 웹 서비스는 XML이 될 문자열을 기다리고 있습니다. VS 내에서 웹 서비스를 디버깅 할 때 모든 것이 잘 작동합니다. FireBug를 사용하여 내 웹 서비스가 실제로 AJAX 호출에 의해 공격당하는 것을 볼 수 있습니다. IIS에 웹 서비스를 로컬로 배포 한 후 작동하지 않는 것 같습니다..NET 웹 서비스에 jQuery ajax POST를 디버깅하는 방법

이 문제를 해결하는 가장 좋은 방법을 알아야합니다. 내 AJAX JS는 다음과 같습니다 : I는 웹 서비스가 정말 히트되도록 시도 웹 메소드의 반환 문자열을 추가

[WebMethod] 
    public string SaveSummaryDisplayData(string xml) 
    { 

     XmlDocument xmlDocument = new XmlDocument(); 
     xmlDocument.LoadXml(xml); 
     XmlParser parser = new XmlParser(xmlDocument); 

     IModel repository = new Repository(); 

     if(repository.AddRecord("TestData",parser.TestValues)) 
     { 
      return "true"; 
     } 
     return "false"; 

    } 
} 

:과 같이

function postSummaryXml(data) { 
    $.ajax({ 
     type: 'POST', 
     url: 'http://localhost/collection/services/datacollector.asmx/SaveSummaryDisplayData', 
     data: { xml: data },  
     error: function(result) { 
      alert(result); 
     }, 
     success: function(result) { 
      alert(result); 

     } 
      }); 

웹 메소드가 보인다 아약스에서. 문제는 다음과 같습니다.

FF에서는 'Success'함수가 항상 호출되지만 결과는 항상 'NULL'입니다. 그리고 웹 방식은 효과가없는 것으로 나타났습니다 (데이터가 저장되지 않았습니다).

IE에서 '오류'기능이 호출되었으며 응답은 서버 오류 : 500입니다. IE가 내게 뭔가 잘못되었다는 정확한 표시를 제공한다고 생각하지만 문제가 무엇인지 파악할 수 없습니다. .

누군가 특정 서버 오류 메시지를 어떻게 표시해야하는지 제안 해주십시오. 도와 주셔서 감사합니다!

+1

페이지 메서드에 중단 점 설정을 시도 했습니까? 디버거를 w3wp.exe에 연결하기 만하면됩니다 (목록에있는 프로세스를 보려면 "모든 사용자의 프로세스 표시"를 선택해야합니다) 디버깅 할 수 있어야합니다.이 메서드가 호출되는 경우에도 알려줍니다 . –

답변

1

당신은 방화범과 함께 올바른 길을 걷고 있습니다.

당신이 알고있는 또 다른 훌륭한 유틸리티는 바이올린입니다.

기본적으로 브라우저와 서버 사이의 요청/응답 (http 트래픽)을보고 싶습니다.

http 트래픽을 기반으로 IIS를 로컬로 사용하는 것과 IIS를 사용하는 것 사이에 차이가없는 경우 서버 방법에 더 많은 로깅을 추가하십시오. 메소드가 입력되었는지 확인하십시오. 예, 리턴 값을 기록하십시오.

global.asax에 전역 예외 처리를 추가하면 저수준 예외가 발생하면 (예 : 직렬 변환기 실패) 예외가 여전히 로그됩니다.

0

이것은 더럽고 절대적으로 최선의 해결책은 아니지만, 어딘가에 빠르게 나타날 수 있습니다. URL을 직접 탐색하고 xml 매개 변수를 쿼리 문자열로 제공하면 실제 오류 (Web.config 파일에서 CustomErrors이 꺼져있는 한)를 볼 수 있어야합니다.

http://localhost/collection/services/datacollector.asmx/SaveSummaryDisplayData?xml=whatever

또는 일부 실제 URL 인코딩 된 XML -이 오류를 일으키는 XML 파싱 않는 한 문제가되지해야한다. 예, POST 대신 GET이 사용되지만 코드를 보면 차이가 발생하지 않습니다.

관련 문제