문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
이 설명서는 보관되지만 유지 되지 않습니다.

WSHttpBinding 클래스

분산 트랜잭션과 안전하고 신뢰할 수 있는 세션을 지원하는 상호 운용 가능한 바인딩을 나타냅니다.

네임스페이스:  System.ServiceModel
어셈블리:  System.ServiceModel(System.ServiceModel.dll)

public class WSHttpBinding : WSHttpBindingBase

WSHttpBinding 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드WSHttpBinding() WSHttpBinding 클래스의 새 인스턴스를 초기화합니다.
Public 메서드WSHttpBinding(SecurityMode)바인딩에서 사용하는 지정된 보안 형식을 사용하여 WSHttpBinding 클래스의 새 인스턴스를 초기화합니다.
Public 메서드WSHttpBinding(String)구성 이름으로 지정된 바인딩을 사용하여 WSHttpBinding 클래스의 새 인스턴스를 초기화합니다.
Public 메서드WSHttpBinding(SecurityMode, Boolean)신뢰할 수 있는 세션의 사용 여부를 나타내는 값과 바인딩에서 사용하는 지정된 보안 형식을 사용하여 WSHttpBinding 클래스의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Public 속성AllowCookies클라이언트가 쿠키를 허용하고 이후 요청에서 이 쿠키를 전파하는지 여부를 나타내는 값을 가져오거나 설정합니다.
Public 속성BypassProxyOnLocal로컬 주소에 대해 프록시 서버를 사용하지 않을 것인지 여부를 나타내는 값을 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성CloseTimeout전송 중 예외가 발생하기 전에 연결을 끊기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (Binding에서 상속됨)
Public 속성EnvelopeVersion이 바인딩에서 처리한 메시지에 사용되는 SOAP 버전을 가져옵니다. (WSHttpBindingBase에서 상속됨)
Public 속성HostNameComparisonModeURI 비교 시 서비스에 액세스하는 데 호스트 이름이 사용되는지 여부를 나타내는 값을 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성MaxBufferPoolSize이 바인딩을 사용하는 끝점에서 필요한 버퍼를 관리하는 버퍼 관리자에게 할당된 최대 메모리를 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성MaxReceivedMessageSize바인딩에서 처리할 수 있는 메시지의 최대 크기를 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성MessageEncodingSOAP 메시지 인코딩에 MTOM이나 텍스트/XML 사용 여부를 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성MessageVersion바인딩을 사용하여 구성된 클라이언트 및 서비스에서 사용하는 메시지 버전을 가져옵니다. (Binding에서 상속됨)
Public 속성Name바인딩의 이름을 가져오거나 설정합니다. (Binding에서 상속됨)
Public 속성Namespace바인딩의 XML 네임스페이스를 가져오거나 설정합니다. (Binding에서 상속됨)
Public 속성OpenTimeout전송 중에 예외가 발생하기 전에 연결을 설정하기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (Binding에서 상속됨)
Public 속성ProxyAddressHTTP 프록시의 URI 주소를 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성ReaderQuotas이 바인딩으로 구성된 끝점에서 처리할 수 있는 SOAP 메시지의 복잡성에 대한 제약 조건을 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성ReceiveTimeout연결이 끊어지기 전에 응용 프로그램 메시지가 수신되지 않는 비활성 상태로 유지될 수 있는 시간 간격을 가져오거나 설정합니다. (Binding에서 상속됨)
Public 속성ReliableSession시스템에서 제공하는 바인딩 중 하나를 사용할 경우 이용 가능한 신뢰할 수 있는 세션 바인딩 요소의 속성에 대한 편리한 액세스를 제공하는 개체를 가져옵니다. (WSHttpBindingBase에서 상속됨)
Public 속성Scheme이 바인딩으로 구성되는 채널과 수신기의 URI 전송 체계를 가져옵니다. (WSHttpBindingBase에서 상속됨)
Public 속성Security이 바인딩과 함께 사용되는 보안 설정을 가져옵니다.
Public 속성SendTimeout전송 중 예외가 발생하기 전에 쓰기 작업을 완료하기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (Binding에서 상속됨)
Public 속성TextEncoding메시지 텍스트에 사용되는 문자 인코딩을 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성TransactionFlow이 바인딩에서 WS-트랜잭션 이동을 지원할지 여부를 나타내는 값을 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
Public 속성UseDefaultWebProxy시스템의 자동 구성된 HTTP 프록시가 있는 경우 이를 사용하는지 여부를 나타내는 값을 가져오거나 설정합니다. (WSHttpBindingBase에서 상속됨)
위쪽

  이름설명
Public 메서드BuildChannelFactory<TChannel>(BindingParameterCollection)지정된 유형의 채널을 만들고 바인딩 매개 변수 컬렉션에서 지정된 기능을 충족하는 채널 팩터리 스택을 클라이언트에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelFactory<TChannel>(Object[])지정된 유형의 채널을 만들고 개체 배열에서 지정된 기능을 충족하는 채널 팩터리 스택을 클라이언트에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(BindingParameterCollection)지정된 유형의 채널을 허용하고 바인딩 매개 변수 컬렉션에서 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(Object[])지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(Uri, Object[])지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(Uri, BindingParameterCollection)지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(Uri, String, Object[])지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (Binding에서 상속됨)
Public 메서드CanBuildChannelFactory<TChannel>(BindingParameterCollection)현재 바인딩이 지정된 바인딩 매개 변수 컬렉션을 충족하는 채널 팩터리 스택을 클라이언트에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (Binding에서 상속됨)
Public 메서드CanBuildChannelFactory<TChannel>(Object[])현재 바인딩이 개체 배열에서 지정된 요구 사항을 충족하는 채널 팩터리 스택을 클라이언트에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (Binding에서 상속됨)
Public 메서드CanBuildChannelListener<TChannel>(BindingParameterCollection)현재 바인딩이 지정된 바인딩 매개 변수 컬렉션을 충족하는 채널 수신기 스택을 서비스에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (Binding에서 상속됨)
Public 메서드CanBuildChannelListener<TChannel>(Object[])현재 바인딩이 개체 배열에 지정된 기준을 충족하는 채널 수신기 스택을 서비스에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (Binding에서 상속됨)
Public 메서드CreateBindingElements현재 바인딩에 포함되어 있는 순서가 지정된 바인딩 요소 컬렉션을 반환합니다. (WSHttpBindingBase.CreateBindingElements()을(를) 재정의함)
Protected 메서드CreateMessageSecurity현재 바인딩의 보안 바인딩 요소를 반환합니다. (WSHttpBindingBase.CreateMessageSecurity()을(를) 재정의함)
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 여부를 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize 개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetProperty<T>요청한 형식화된 개체가 있으면 바인딩 스택의 해당 계층에서 반환합니다. (Binding에서 상속됨)
Protected 메서드GetTransport현재 바인딩의 전송 바인딩 요소를 반환합니다. (WSHttpBindingBase.GetTransport()을(를) 재정의함)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드ShouldSerializeName바인딩 이름을 serialize해야 하는지 여부를 반환합니다. (Binding에서 상속됨)
Public 메서드ShouldSerializeNamespace바인딩 네임스페이스를 serialize해야 하는지 여부를 반환합니다. (Binding에서 상속됨)
Public 메서드ShouldSerializeReaderQuotas ReaderQuotas 속성이 기본값에서 변경되었으며 이를 serialize해야 하는지 여부를 나타내는 값을 반환합니다. (WSHttpBindingBase에서 상속됨)
Public 메서드ShouldSerializeReliableSession ReliableSession 속성이 기본값에서 변경되었으며 이를 serialize해야 하는지 여부를 나타내는 값을 반환합니다. (WSHttpBindingBase에서 상속됨)
Public 메서드ShouldSerializeSecurity Security 속성이 기본값에서 변경되었으며 이를 serialize해야 하는지 여부를 나타내는 값을 반환합니다.
Public 메서드ShouldSerializeTextEncoding TextEncoding 속성이 기본값에서 변경되었으며 이를 serialize해야 하는지 여부를 나타내는 값을 반환합니다. (WSHttpBindingBase에서 상속됨)
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
위쪽

  이름설명
명시적 인터페이스 구현Private 속성IBindingRuntimePreferences.ReceiveSynchronously들어오는 요청이 동기적으로 처리되는지 아니면 비동기적으로 처리되는지를 나타내는 값을 가져옵니다. (WSHttpBindingBase에서 상속됨)
위쪽

WSHttpBinding BasicHttpBinding과 비슷하지만 더 다양한 웹 서비스 기능을 제공합니다. BasicHttpBinding 과 마찬가지로 HTTP 전송을 사용하며 메시지 보안을 제공하지만 다른 점은 트랜잭션, 신뢰할 수 있는 메시징, WS-Addressing도 가능하다는 것입니다. 이러한 기능은 기본적으로 또는 단일 제어 설정을 통해 활성화됩니다.

다음 샘플 코드에서는 WSHttpBinding 클래스를 사용하는 방법을 보여 줍니다.


using System;
using System.ServiceModel;
using System.Collections.Generic;
using System.IdentityModel.Tokens;
using System.Security.Cryptography.X509Certificates;
using System.ServiceModel.Channels;
using System.ServiceModel.Security;
using System.ServiceModel.Security.Tokens;
using System.Security.Permissions;

// Define a service contract for the calculator. 
[ServiceContract()]
public interface ICalculator
{
    [OperationContract(IsOneWay = false)]
    double Add(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Subtract(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Multiply(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Divide(double n1, double n2);
}

public sealed class CustomBindingCreator
{

    public static void snippetSecurity()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        WSHttpSecurity whSecurity = wsHttpBinding.Security;
    }


    public static void snippetCreateBindingElements()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        BindingElementCollection beCollection = wsHttpBinding.CreateBindingElements();
    }


    private void snippetCreateMessageSecurity()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        // SecurityBindingElement sbe = wsHttpBinding
    }

    public static void snippetGetTransport()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        //		TransportBindingElement tbElement = wsHttpBinding.GetTransport();
    }

    public static void snippetAllowCookies()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        wsHttpBinding.AllowCookies = true;
    }

    public static Binding GetBinding()
    {
        // securityMode is Message
        // reliableSessionEnabled is true
        WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message, true);
        binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;

        WSHttpSecurity security = binding.Security;
        return binding;

    }

    public static Binding GetBinding2()
    {

        // The security mode is set to Message.
        WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message);
        binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
        return binding;

    }

    // This method creates a WSFederationHttpBinding.
    public static WSFederationHttpBinding CreateWSFederationHttpBinding()
    {
        // Create an instance of the WSFederationHttpBinding
        WSFederationHttpBinding b = new WSFederationHttpBinding();

        // Set the security mode to Message
        b.Security.Mode = WSFederationHttpSecurityMode.Message;

        // Set the Algorithm Suite to Basic256Rsa15
        b.Security.Message.AlgorithmSuite = SecurityAlgorithmSuite.Basic256Rsa15;

        // Set NegotiateServiceCredential to true
        b.Security.Message.NegotiateServiceCredential = true;

        // Set IssuedKeyType to Symmetric
        b.Security.Message.IssuedKeyType = SecurityKeyType.SymmetricKey;

        // Set IssuedTokenType to SAML 1.1
        b.Security.Message.IssuedTokenType = "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#samlv1.1";

        // Extract the STS certificate from the certificate store
        X509Store store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadOnly);
        X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindByThumbprint, "cd 54 88 85 0d 63 db ac 92 59 05 af ce b8 b1 de c3 67 9e 3f", false);
        store.Close();

        // Create an EndpointIdentity from the STS certificate
        EndpointIdentity identity = EndpointIdentity.CreateX509CertificateIdentity(certs[0]);

        // Set the IssuerAddress using the address of the STS and the previously created EndpointIdentity
        b.Security.Message.IssuerAddress = new EndpointAddress(new Uri("http://localhost:8000/sts/x509"), identity);

        // Set the IssuerBinding to a WSHttpBinding loaded from config
        b.Security.Message.IssuerBinding = new WSHttpBinding("Issuer");

        // Set the IssuerMetadataAddress using the metadata address of the STS and the previously created EndpointIdentity
        b.Security.Message.IssuerMetadataAddress = new EndpointAddress(new Uri("http://localhost:8001/sts/mex"), identity);

        // Create a ClaimTypeRequirement
        ClaimTypeRequirement ctr = new ClaimTypeRequirement("http://example.org/claim/c1", false);

        // Add the ClaimTypeRequirement to ClaimTypeRequirements
        b.Security.Message.ClaimTypeRequirements.Add(ctr);

        // Return the created binding
        return b;
    }

}

// Service class which implements the service contract. 
public class CalculatorService : ICalculator
{
    public double Add(double n1, double n2)
    {
        double result = n1 + n2; return result;
    }
    public double Subtract(double n1, double n2)
    {
        double result = n1 - n2; return result;
    }
    public double Multiply(double n1, double n2)
    {
        double result = n1 * n2; return result;
    }
    public double Divide(double n1, double n2)
    {
        double result = n1 / n2; return result;
    }


    // Host the service within this EXE console application. 
    public static void Main()
    {
        // Create a WSHttpBinding and set its property values. 
        WSHttpBinding binding = new WSHttpBinding();
        binding.Name = "binding1";
        binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
        binding.Security.Mode = SecurityMode.Message;
        binding.ReliableSession.Enabled = false;
        binding.TransactionFlow = false;
        //Specify a base address for the service endpoint. 
        Uri baseAddress = new Uri(@"http://localhost:8000/servicemodelsamples/service");
        // Create a ServiceHost for the CalculatorService type 
        // and provide it with a base address. 
        ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
        serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, baseAddress);
        // Open the ServiceHostBase to create listeners 
        // and start listening for messages. 
        serviceHost.Open();
        // The service can now be accessed. 
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine(); Console.ReadLine();
        // Close the ServiceHost to shutdown the service. 
        serviceHost.Close();
    }
}


.NET Framework

4, 3.5, 3.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
표시: