다음을 통해 공유


방법: 구성에서 서비스 바인딩 지정

이 예제에서 ICalculator 계약이 기본 계산기 서비스에 대해 정의되고, 서비스가 CalculatorService 클래스에 구현된 다음 해당 끝점이 Web.config 파일에 구성됩니다. 여기서 서비스는 BasicHttpBinding을 사용하는 것으로 지정됩니다. 구성 대신에 코드를 사용하여 이 서비스를 구성하는 방법에 대한 설명은 방법: 코드에서 서비스 바인딩 지정을 참조하십시오.

일반적으로 바인딩 및 주소 정보를 코드에서 명령적으로 지정하지 않고 구성에서 선언적으로 지정하는 것이 좋습니다. 일반적으로 배포된 서비스의 바인딩과 주소는 서비스를 배포할 때 사용된 바인딩 및 주소와 다르기 때문에 코드로 끝점을 정의하는 것은 효과적이지 않습니다. 일반적으로 바인딩 및 주소 지정 정보를 코드와 구분하면 응용 프로그램을 다시 컴파일하거나 다시 배포할 필요 없이 해당 정보를 변경할 수 있습니다.

다음 구성 단계는 모두 Configuration Editor 도구(SvcConfigEditor.exe)를 사용하여 수행할 수 있습니다.

이 예제의 소스 복사에 대해서는 BasicBinding을 참조하십시오.

서비스를 구성하는 데 사용할 BasicHttpBinding을 지정하려면

  1. 서비스 유형에 대한 서비스 계약을 정의합니다.

      <ServiceContract()> _
    Public Interface ICalculator
          <OperationContract()> _
          Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
          <OperationContract()> _
          Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
          <OperationContract()> _
          Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
          <OperationContract()> _
          Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
      End Interface
    
    [ServiceContract]
    public interface ICalculator
    {
       [OperationContract]
       double Add(double n1, double n2);
       [OperationContract]
       double Subtract(double n1, double n2);
       [OperationContract]
       double Multiply(double n1, double n2);
       [OperationContract]
       double Divide(double n1, double n2);
    }
    
  2. 서비스 클래스에 서비스 계약을 구현합니다.

    Public Class CalculatorService
        Implements ICalculator
        Public Function Add(ByVal n1 As Double, _
                            ByVal n2 As Double) As Double Implements ICalculator.Add
            Return n1 + n2
        End Function
        Public Function Subtract(ByVal n1 As Double, _
                                 ByVal n2 As Double) As Double Implements ICalculator.Subtract
            Return n1 - n2
        End Function
        Public Function Multiply(ByVal n1 As Double, _
                                 ByVal n2 As Double) As Double Implements ICalculator.Multiply
            Return n1 * n2
        End Function
        Public Function Divide(ByVal n1 As Double, _
                               ByVal n2 As Double) As Double Implements ICalculator.Divide
            Return n1 / n2
        End Function
    End Class
    
    public class CalculatorService : ICalculator
    {
       public double Add(double n1, double n2)
       {
          return n1 + n2;
       }
       public double Subtract(double n1, double n2)
       {
          return n1 - n2;
       }
       public double Multiply(double n1, double n2)
       {
          return n1 * n2;
       }
       public double Divide(double n1, double n2)
       {
          return n1 / n2;
       }
    } 
    
    ms733051.note(ko-kr,VS.100).gif참고:
    주소 또는 바인딩 정보는 서비스 구현 내에 지정되지 않습니다. 또한 구성 파일에서 해당 정보를 가져오기 위해 코드를 쓰지 않아도 됩니다.

  3. Web.config 파일을 만들어 WSHttpBinding을 사용하는 CalculatorService에 대한 끝점을 구성합니다.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <services>
          <service name=" CalculatorService" >
            <endpoint 
            <-- Leave the address blank to be populated by default-->
            <--from the hosting environment,in this case IIS, so -->
            <-- the address will just be that of the IIS Virtual -->
            <--Directory.-->
                address="" 
            <--Specify the binding type -->
                binding="wsHttpBinding"
            <--Specify the binding configuration name for that -->
            <--binding type. This is optional but useful if you  -->
            <--want to modify the properties of the binding. -->
            <--The bindingConfiguration name Binding1 is defined  -->
            <--below in the bindings element.  -->
                bindingConfiguration="Binding1"
                contract="ICalculator" />
          </service>
        </services>
        <bindings>
          <wsHttpBinding>
            <binding name="Binding1">
              <-- Binding property values can be modified here. -->
              <--See the next procedure. -->
            </binding>
          </wsHttpBinding>
       </bindings>
      </system.serviceModel>
    </configuration>
    
  4. 다음 줄이 포함된 Service.svc 파일을 만든 다음 IIS(인터넷 정보 서비스) 가상 디렉터리에 넣습니다.

    <%@ServiceHost language=c# Service="CalculatorService" %> 
    

바인딩 속성의 기본값을 수정하려면

  1. WSHttpBinding의 기본 속성 값 중 하나를 수정하려면 <wsHttpBinding> 요소 내에 새 바인딩 구성 이름 <binding name="Binding1">을 만들고 이 바인딩 요소에 바인딩 특성에 대한 새 값을 설정합니다. 예를 들어 기본 열기 및 닫기 시간 제한 값을 1분에서 2분으로 변경하려면 구성 파일에 다음을 추가합니다.

          <wsHttpBinding>
            <binding name="Binding1"
                     closeTimeout="00:02:00"
                     openTimeout="00:02:00">
            </binding>
          </wsHttpBinding>
    

참고 항목

개념

바인딩을 사용하여 서비스 및 클라이언트 구성
끝점 주소 지정