2013-06-03 2 views
-2

WCF에서 첫 예제를 만들었습니다. 지금까지 나는 로컬 컴퓨터의 클라이언트에 의해 서비스를 생성하고 소비 할 수있었습니다. 내가 WCF에 대해 처음 읽었을 때 나는 끝점에 대한 설명을 보았고 왜 실제로 사용되는지 이해할 수 없었다. 아래 코드는 내 코드이며 일부는 엔드 포인트를 사용해야하는 이유와 엔드 포인트를 예제 애플리케이션에 추가하는 방법을 알려주고 있습니다.WCF에서 끝점을 사용해야하는 이유

namespace MvcApplicationrazor.Services 
{ 

    [ServiceContract] 
    public interface IMyService 
    { 
     [OperationContract] 
     string MyOperation1(string myValue); 
     [OperationContract] 
     string MyOperation2(DataContract1 dataContractValue); 
     [OperationContract] 
     string HelloWorld(string str); 
    } 

    [DataContract] 
    public class DataContract1 
    { 
     string firstName; 
     string lastName; 

     [DataMember] 
     public string FirstName 
     { 
      get { return firstName; } 
      set { firstName = value; } 
     } 
     [DataMember] 
     public string LastName 
     { 
      get { return lastName; } 
      set { lastName = value; } 
     } 
    } 
} 


namespace MvcApplicationrazor.Services 
{ 

    public class MyService : IMyService 
    { 
     public string MyOperation1(string myValue) 
     { 
      return "Hello: " + myValue; 
     } 
     public string MyOperation2(DataContract1 dataContractValue) 
     { 
      return "Hello: " + dataContractValue.FirstName; 
     } 
     public string HelloWorld(string str) 
     { 
      return "Helloworld from " + str; 
     } 


    } 
} 

클라이언트 :

FirstServiceReference.MyServiceClient cc = new FirstServiceReference.MyServiceClient(); 
string a = cc.MyOperation1("chamara"); 

답변

4

WCF (Windows Communication Foundation) 서비스와 모든 통신 서비스의 엔드 포인트를 통해 발생합니다. 끝점은 클라이언트가 WCF 서비스에서 제공하는 기능에 액세스 할 수있게합니다.

각 엔드 포인트는 네 가지 속성으로 구성

  • 엔드 포인트를 찾을 수있는 위치를 나타내는 주소를 입력합니다.
  • 클라이언트가 엔드 포인트와 통신하는 방법을 지정하는 바인딩.
  • 사용 가능한 작업을 식별하는 계약.
  • 끝점의 로컬 구현 세부 정보를 지정하는 동작 집합입니다. 주소는 고유 엔드 포인트를 식별하고 서비스의 잠재적 인 소비자를 알려줍니다

    • 주소 :

    엔드 포인트

    각 엔드 포인트의 구조는 다음과 같이 구성 어디에 위치해 있나. EndpointAddress 클래스에 의해 WCF 개체 모델에서 나타납니다. EndpointAddress 클래스에는 다음이 포함됩니다.

  • 서비스의 주소를 나타내는 Uri 속성입니다.

  • 서비스의 보안 ID 및 선택적 메시지 헤더 모음을 나타내는 Identity 속성입니다. 선택적 메시지 헤더는 엔드 포인트를 식별하거나 상호 작용하기위한 추가의보다 자세한 주소 지정 정보를 제공하는 데 사용됩니다.

    자세한 내용은 끝점 주소 지정을 참조하십시오.

  • 바인딩 : 바인딩은 엔드 포인트와 통신하는 방법을 지정합니다. 여기에는 다음이 포함됩니다.

    • 사용할 전송 프로토콜 (예 : TCP 또는 HTTP).

    • 메시지 (예 : 텍스트 또는 이진)에 사용할 인코딩.

    • 필요한 보안 요구 사항 (예 : SSL 또는 SOAP 메시지 보안).

    자세한 내용은 Windows Communication Foundation 바인딩 개요를 참조하십시오. 바인딩은 추상 기본 클래스 Binding에 의해 WCF 객체 모델에 표현됩니다. 대부분의 시나리오에서 사용자는 시스템 제공 바인딩 중 하나를 사용할 수 있습니다. 자세한 내용은 시스템 제공 바인딩을 참조하십시오.

  • 계약서 : 계약서에는 엔드 포인트가 클라이언트에 공개하는 기능이 요약되어 있습니다. 계약은 다음을 지정합니다.

    • 클라이언트가 호출 할 수있는 조작.

    • 메시지의 형태.

    • 조작을 호출하는 데 필요한 입력 매개 변수 또는 데이터의 유형.
    • 클라이언트가 예상 할 수있는 처리 또는 응답 메시지의 유형입니다.
  • 행동 : 당신은 서비스 엔드 포인트의 로컬 동작을 사용자 정의 엔드 포인트 동작을 사용할 수 있습니다. 끝점 동작은 WCF 런타임을 작성하는 프로세스에 참여하여이를 수행합니다. 엔드 포인트 동작의 예는 SOAP 또는 WSDL (Web Services Description Language) 주소와 다른 수신 대기 주소를 지정할 수있는 ListenUri 등록 정보입니다. 자세한 내용은 ClientViaBehavior를 참조하십시오.