2009-06-15 2 views
0

저는 웹 서비스를 사용하기위한 첫 걸음을 내딛고 있습니다. 다음은 내 상황입니다..NET을 사용하여 WSDL 파일 사용하기 - Total Newbie Question!

기존 회사 인트라넷 웹 사이트의 경우 .NET 3.5로 작성하고 있습니다. 계정 데이터를 전달하고 응답을받는 웹 서비스에 대한 호출을 추가해야합니다.

웹 참조를 .wsdl 파일에 추가하고 Visual Studio에서 서비스 참조 클래스를 생성하도록 할 수 있습니다.

그래서, 여기 내 질문 -이 상황에서 WCF를 사용하는 것이 더 쉬운가 아니면 구운 ASP.NET 웹 서비스 아키텍처를 사용해야합니까?

다음 코드를 사용하여 웹 서비스를 작동 시키려고했지만 실패했습니다. 이 코드에서 ProgramServiceClient는 wsdl 파일을 사용하여 VS에서 생성 한 서비스 클래스의 이름입니다. 다시 말하지만, 나는 이것에 대해 아주 새롭다. 그래서 어떤 포인터라도 도움이 될 것이다!

var client = new ProgramServiceClient(); 
    Int64 acct = 123456781234 
    var requestMetadata = new RequestMetadata(); 

    var response = new GetProgramResponse(); 
    var request = new GetProgramRequest 
         { 
          AccountId = acct 
         }; 

    client.GetProgram(requestMetadata, request, out response); 
+0

out 매개 변수를 사용해야합니까? 메서드가 매개 변수를 조작하는 대신 응답을 반환해야하는 것처럼 보입니다. – slf

+0

WCF 비트에 의해 ProgramServiceClient가 생성 되었습니까? 질문에 붙여 넣을 수 있다면 예외가 발생합니까? ProgramServiceClient.GetProgram()의 메서드 서명은 무엇입니까? – Kev

+0

@Kev - 클라이언트가 서비스 참조 추가 대화 상자에 의해 생성되었습니다. 아래의 답변에서 제공된 링크를 사용해 보겠습니다. 실패 할 경우 특정 오류 메시지를 게시합니다. @slf - out 매개 변수는 생성 된 메소드에서 필요합니다. –

답변

5

How to Consume a Web Service을 참조하십시오.

.NET을 사용하는 모든 새 웹 서비스 개발에는 WCF를 사용해야합니다. WCF 은 .NET에 "구운"입니다. "ASP.NET 웹 서비스 아키텍처에서 구운 것"이라고 부르는 것은 오래되고 정체 된 웹 서비스 아키텍처입니다.

게시 한 특정 코드에 대해서는 특정 코드를 게시하는 것이 좋지만 특정 오류 메시지 나 예외가 게시되어 있어야합니다. 특히 예외가 발생하면 스택 추적 및 InnerException 인스턴스를 포함하여 완전한 예외를 게시하십시오. catch하고 ex.ToString()을 표시하십시오.

+2

+1 절대적으로 : WCF는 그 어느 때보 다 더 많은 유연성과 성능 및 옵션을 제공합니다. 오늘날 새로운 시작을하는 사람은 WCF 대 ASMX를 생각할 필요가 없습니다. 선택이 완전히 명확합니다! –

+0

John 님, 간결하고 유익한 답변에 감사드립니다. 나는 모든 것을 실행하고 있으며, 이제는 실제 서비스에 의해 던져지는 오류를 처리하고 있습니다. 이것은 요청을 올바르게 형식화하는 것입니다. 그래도 나를 데려오고 달리는거야. 감사! –