문제

들어오는 매개 변수를 무시하는 것처럼 보이는 ASP.NET 2 ASMX 웹 서비스의 문제를 해결하는 방법을 파악하는 데 도움이 필요합니다.

문자열을 취하고 SAP API로 약간의 작업을 수행하고 작업 결과를 문자열로 반환하는 ASMX 서비스가 있습니다. DEV 환경에서는 잘 작동하지만 들어오는 매개 변수를받지 않는 것처럼 보이기 때문에 생산에 실패합니다.

대표 코드 스 니펫은 다음과 같습니다.

소비 코드에서 "TextIndifier"는 웹 서비스를 호출하는 메소드에 전달되는 문자열입니다.

SAPProxyWebService.SAPProxyWebService webservice = new SAPProxyWebService.SAPProxyWebService();
return webservice.GetEncodedText( TextIdentifier );

웹 메소드는 다음과 같이 선언됩니다.

[WebMethod()]
public string GetEncodedText(string TextIDString)
{
   do some stuff with TextIDString;
   return results;
}

웹 메소드를 호출하는 메소드 내에서 TextIendifier 값을 기록하면 예상 값이 나타납니다. 사실, 웹 메소드 호출과 같은 줄에 로그인하면 예상 입력을 볼 수 있습니다.

그러나 WebMethod 내부에 TextIdString Param을 기록하면 다른 작업 전에는 NULL입니다. 웹 메소드 내부의 특정 값을 하드 코딩하면 하드 코딩 된 값에 대해 기대할 수있는 결과를 얻습니다.

웹 메소드가 들어오는 매개 변수를 "손실"하게하는 것은 무엇을 찾고 있습니까?

도움이 되었습니까?

해결책 2

그래서 나는 근본 원인이 무엇인지, 그리고 내 수정의 측면이 실제로 문제를 해결했는지 잘 모르겠지만, 내가 한 일을 한 일은 다른 위치에 웹 서비스를 배치하고 클라이언트 라이브러리를 거기에 지적하는 것이 었습니다. . Dev/Testing Architecture를 통해 보고서 (클라이언트 라이브러리 포함)를 배치했으며 모든 것이 잘 작동했습니다. 그런 다음 웹 서비스를 원래 위치에 다시 배치 한 다음 아키텍처를 통해 보고서와 라이브러리를 올렸고 보고서는 원래 위치에서 웹 서비스와 함께 작동했습니다.

내 의심은 클라이언트 라이브러리/보고서가 캐시 된 버전의 서비스 정의를 사용하고 있다는 것입니다. 이에 대해 이해하지 못하는 것은 일어나고있는 일을 기록하기 위해 서비스를 수정하면서 예외를 던지는 코드의 위치 (널 참조 예외)가 움직일 것이며 보고서는 새로운 위치를 반영한다는 것입니다. 동일한 명령문이 실행 된 코드에서 IE 줄 번호).

다른 팁

사용해 보셨습니까? 바이올리니스트? 클라이언트와 서버 사이에서 진행중인 비누/패킷을 볼 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top