[C#] WSDL 사용 방법

웹 서비스를 사용해야합니다. 그들은 저에게 WSDL 파일을 보냈습니다. 내 웹 사이트에 추가하고 프록시로 사용하려면 어떻게해야합니까? (가상 디렉토리에 넣으면 발견 될 수 있지만 실제 웹 서비스와의 연결을 허용합니까?)



답변

Visual Studio를 시작하고 웹 프로젝트 (또는 콘솔 앱-중요하지 않음)를 만듭니다.

.Net 표준의 경우 :

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴 추가 에서 “서비스 참조 추가”를 선택 합니다.
  2. 고급을 클릭 한 다음 서비스 참조 추가를 클릭합니다.
  3. wsdl의 전체 파일 경로를 가져와 주소 표시 줄에 붙여 넣습니다. 그런 다음 화살표 (이동 버튼)를 발사합니다.
  4. 파일을로드하는 동안 오류가 발생하면 아래와 같이 파일이 해결해야하는 문제가 있고 해결되지 않은 URL이 있어야합니다. 해결
    여기에 이미지 설명 입력
    방법에 대한 정보는이 답변을 참조하십시오
    . wsdl 파일

오류가없는 경우 서비스에 액세스하는 데 사용할 네임 스페이스를 설정하기 만하면 자동으로 생성됩니다.

.Net Core 용

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴 추가에서 연결된 서비스를 선택합니다.
  2. 목록에서 Microsoft WCF 웹 서비스 참조 공급자를 선택합니다.
  3. 찾아보기를 누르고 바로 wsdl 파일을 선택하고 네임 스페이스를 설정하면됩니다. 오류가 발생하면 위의 오류 수정 URL을 참조하세요.

위의 모든 방법은 사용할 수있는 간단하고 매우 기본적인 WCF 클라이언트를 생성합니다. 생성 된 코드에서 “YourservicenameClient”클래스를 찾아야합니다.

참조 목적으로 생성 된 cs 파일은 Obj / debug (또는 릴리스) / XsdGeneratedCode에서 찾을 수 있으며 TempPE 폴더에서 여전히 dll을 찾을 수 있습니다.

생성 된 서비스에는 WSDL 계약에 정의 된 각 메서드에 대한 메서드가 있어야합니다.

클라이언트를 인스턴스화하고 호출하려는 메소드를 호출하십시오. 그게 전부입니다!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

원격 URL을 지정해야하는 경우 (기본적으로 생성 된 URL을 사용하지 않음) 프록시 클라이언트의 생성자에서 쉽게 수행 할 수 있습니다.

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

여기서는 configName사용할 끝점의 이름 (URL을 제외한 모든 설정 사용) remoteURL이고은 연결할 URL을 나타내는 문자열입니다 (구성에 포함 된 이름 대신).


답변

비주얼 스튜디오에서.

  • 프로젝트를 만들거나 엽니 다.
  • 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하십시오.
  • “서비스 참조 추가”를 선택합니다.
  • 받은 WSDL로 주소를 붙여 넣으십시오.
  • 확인을 클릭하십시오.

오류가 없으면 개체 브라우저 및 모든 관련 메서드에서 서비스 참조를 볼 수 있어야합니다.


답변

WSDL.EXE 유틸리티 를 사용 하여 WSDL에서 웹 서비스 프록시를 생성합니다.

다음과 같은 클래스가 포함 된 긴 C # 소스 파일이 생성됩니다.

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    ...
}

클라이언트 측 웹 서비스 소비 코드에서 :

  1. MyService를 인스턴스화하십시오.
  2. Url 속성 설정
  3. 웹 메소드 호출

답변

.Net Core 프로젝트 에 wsdl 참조를 추가하려는 경우 “웹 참조 추가”옵션이 없습니다.

wsdl 참조를 추가하려면 솔루션 탐색기로 이동하여 참조 프로젝트 항목을 마우스 오른쪽 단추로 클릭 한 다음 연결된 서비스 추가 옵션 을 클릭합니다 .

여기에 이미지 설명 입력

그런 다음 ‘Microsoft WCF 웹 서비스 참조’를 클릭합니다.

여기에 이미지 설명 입력

URI 텍스트 상자에 파일 경로를 입력하고 WSDL을 가져옵니다.

여기에 이미지 설명 입력

간단하고 매우 기본적인 WCF 클라이언트를 생성하고 다음과 같이 사용합니다.

YourServiceClient client = new YourServiceClient();
client.DoSomething();


답변