2012-01-12 1 views
0

asp.net 웹 서비스를 만들고 클라이언트를 사용하여 테스트하려고합니다. 현재 테스트중인 웹 메서드는 GetAllTicketsSinceLastPullDateResult라는 사용자 지정 개체를 반환합니다.이 개체에는 사용자 지정 clsTrip 개체의 ArrayList 하나와 FaultResponse라는 사용자 지정 개체가 들어 있습니다. 내 클라이언트 사용하고 방법입니다 :asp.net 웹 서비스에서 XML 문서 생성 중 오류가 발생했습니다.

ServiceReference1.ServiceSoapClient myClient = new ServiceReference1.ServiceSoapClient(); 
     ServiceReference1.GetAllTicketsSinceLastPullDateResult result = new ServiceReference1.GetAllTicketsSinceLastPullDateResult(); 

     result = myClient.getAllTicketsSinceLastPullDate(myUser); 

을하지만 다음과 같은 오류 얻을 :

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type clsTicket was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically. 

내가 오류를 구글과 내가 찾은 해답의 대부분은 파생 클래스를 직렬화와 함께해야합니다. 하지만 내 clsTicket 클래스는 파생 클래스가 아닙니다. 이 오류의 원인은 무엇입니까? XmlInclude 또는 SoapInclude는 어떻게 사용합니까?

미리 감사드립니다.

답변

2

좋아, 다음 줄을 넣어 결국 :

[XmlInclude(typeof(clsTicket))] 

[WebMethod] 사이에 나의 방법의 정의를. 여태까지는 그런대로 잘됐다.

1

처음에 프로젝트에 대한 참조를 추가 한 이후로 서비스를 업데이트 했습니까? Visual Studio의 "웹 참조 추가"기능을 사용하고 있고 서비스를 업데이트하는 경우 SOAP 오류를 생성 할 수있는 구성 또는 매개 변수 기회가 종종 있습니다.

Visual Studio에서 해당 웹 서비스를 마우스 오른쪽 단추로 클릭하고 "업데이트"옵션을 선택하십시오. 앱을 다시 컴파일하여 문제가 해결되는지 확인합니다.

또한
ServiceReference1.GetAllTicketsSinceLastPullDateResult result; 
result = myClient.getAllTicketsSinceLastPullDate(myUser); 

, 어떻게 오류가 서버에없는 알고 :

+0

답장을 보내 주셔서 감사합니다. 그래, 나는 아무 소용이 그것을 시도했습니다. – PaulG

2

난 당신에게 '새로운'결과를 필요가 있다고 생각하지 않는다? 웹 브라우저에서이 기능을 호출 할 수 있습니까? 나는 마지막으로 작동있어

+0

나는 이것을 웹 브라우저를 통해 시험해 보았고 실제로 같은 오류 메시지가 나타납니다. 아마 서버 일 겁니다. 아직 어떻게 처리해야할지 모르겠다. – PaulG

+1

아마도? 확실히 그것은 서버 코드입니다! –

관련 문제