안전하고 안정적이며 컴퓨터 간 프로세스 통신에 최적화된 바인딩을 정의합니다. 기본적으로 안정성, 전송 보안을 위한 전송 보안, 메시지 배달을 위한 명명된 파이프 및 이진 메시지 인코딩을 위한 WS-ReliableMessaging 사용하여 런타임 통신 스택을 생성합니다.
<구성>
<system.serviceModel>
<바인딩>
<netNamedPipeBinding>
문법
<netNamedPipeBinding>
<binding closeTimeout="TimeSpan"
hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
maxBufferPoolSize="Integer"
maxBufferSize="Integer"
maxConnections="Integer"
maxReceivedMessageSize="Integer"
name="String"
openTimeout="TimeSpan"
receiveTimeout="TimeSpan"
sendTimeout="TimeSpan"
transactionFlow="Boolean"
transactionProtocol="OleTransactions/WS-AtomicTransactionOctober2004"
transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse">
<security mode="None/Transport">
<transport protectionLevel="None/Sign/EncryptAndSign" />
</security>
<readerQuotas maxArrayLength="Integer"
maxBytesPerRead="Integer"
maxDepth="Integer"
maxNameTableCharCount="Integer"
maxStringContentLength="Integer" />
</binding>
</netNamedPipeBinding>
특성 및 요소
다음 섹션에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.
Attributes
| 특성 | Description |
|---|---|
| closeTimeout | TimeSpan 닫기 작업을 완료하기 위해 제공된 시간 간격을 지정하는 값입니다. 이 값은 .보다 크거나 같아야 합니다 Zero. 기본값은 00:01:00입니다. |
| hostNameComparisonMode | URI를 구문 분석하는 데 사용되는 HTTP 호스트 이름 비교 모드를 지정합니다. 이 특성은 URI에서 일치할 때 호스트 이름이 서비스에 도달하는 데 사용되는지 여부를 나타내는 형식 HostNameComparisonMode입니다. 기본값은 일치 항목의 호스트 이름을 무시하는 값입니다 StrongWildcard. |
| maxBufferPoolSize | 이 바인딩의 최대 버퍼 풀 크기를 지정하는 정수입니다. 기본값은 524,288바이트(512 * 1024)입니다. WCF(Windows Communication Foundation)의 많은 부분에서 버퍼를 사용합니다. 버퍼를 사용할 때마다 버퍼를 만들고 삭제하는 것은 비용이 많이 들고 버퍼에 대한 가비지 수집도 비용이 많이 듭니다. 버퍼 풀을 사용하면 풀에서 버퍼를 가져와서 사용하고 완료되면 풀로 반환할 수 있습니다. 따라서 버퍼를 만들고 삭제하는 오버헤드는 방지됩니다. |
| maxBufferSize | 메모리에 메시지를 저장하는 데 사용되는 버퍼의 최대 크기(바이트)를 지정하는 양의 정수입니다. 버퍼가 가득 차면 버퍼가 다시 공간을 확보할 때까지 초과 데이터가 기본 소켓에 유지됩니다. 이 값은 특성보다 maxReceivedMessageSize 작을 수 없습니다. 기본값은 65536입니다. 자세한 내용은 MaxBufferSize를 참조하세요. |
| maxConnections | 서비스에서 생성/수락할 아웃바운드 및 인바운드 연결의 최대 수를 지정하는 정수입니다. 들어오고 나가는 연결은 이 특성에 지정된 별도의 제한에 대해 계산됩니다. 제한을 초과하는 인바운드 연결은 한도 미만의 공간을 사용할 수 있게 될 때까지 큐에 대기됩니다. 제한을 초과하는 아웃바운드 연결은 한도 미만의 공간을 사용할 수 있게 될 때까지 큐에 대기됩니다. 기본값은 10입니다. |
| maxReceivedMessageSize | 이 바인딩으로 구성된 채널에서 수신할 수 있는 최대 메시지 크기(헤더 포함)를 바이트 단위로 지정하는 양의 정수입니다. 이 제한을 초과하는 메시지의 보낸 사람에게 SOAP 오류가 발생합니다. 수신기는 메시지를 삭제하고 추적 로그에 이벤트 항목을 만듭니다. 기본값은 65536입니다. |
| 이름 | 바인딩의 구성 이름을 포함하는 문자열입니다. 이 값은 바인딩에 대한 ID로 사용되므로 고유해야 합니다. .NET Framework 4부터 바인딩 및 동작은 이름을 가질 필요가 없습니다. 기본 구성 및 이름 없는 바인딩 및 동작에 대한 자세한 내용은 WCF 서비스에 대한 간소화된 구성 및 간소화된 구성을 참조하세요. |
| openTimeout | TimeSpan 열려 있는 작업이 완료될 때까지 제공된 시간 간격을 지정하는 값입니다. 이 값은 .보다 크거나 같아야 합니다 Zero. 기본값은 00:01:00입니다. |
| receiveTimeout | TimeSpan 수신 작업이 완료될 때까지 제공된 시간 간격을 지정하는 값입니다. 이 값은 .보다 크거나 같아야 합니다 Zero. 기본값은 00:10:00입니다. |
| sendTimeout | TimeSpan 보내기 작업이 완료될 때까지 제공된 시간 간격을 지정하는 값입니다. 이 값은 .보다 크거나 같아야 합니다 Zero. 기본값은 00:01:00입니다. |
| transactionFlow | 바인딩이 흐름 WS 트랜잭션을 지원하는지 여부를 지정하는 부울 값입니다. 기본값은 false입니다. |
| transactionProtocol | 이 바인딩에 사용할 트랜잭션 프로토콜을 지정합니다. 유효한 값은 다음과 같습니다. - OleTransactions - WS-AtomicTransactionOctober2004 기본값은 OleTransactions입니다. 이 특성은 형식 TransactionProtocol입니다. |
| transferMode | TransferMode 메시지가 버퍼링되는지 스트리밍되는지 또는 요청 또는 응답인지를 지정하는 값입니다. |
자식 요소
| 요소 | Description |
|---|---|
| <안전> | 바인딩에 대한 보안 설정을 정의합니다. 이 요소는 형식 NetNamedPipeBindingElement입니다. |
| <readerQuotas> | 이 바인딩으로 구성된 엔드포인트에서 처리할 수 있는 SOAP 메시지의 복잡성에 대한 제약 조건을 정의합니다. 이 요소는 형식 XmlDictionaryReaderQuotasElement입니다. |
부모 요소
| 요소 | Description |
|---|---|
| <바인딩> | 이 요소는 표준 및 사용자 지정 바인딩 컬렉션을 보유합니다. |
비고
기본적으로 전송 보안, 메시지 배달에 명명된 파이프 및 이 NetNamedPipeBinding 진 메시지 인코딩을 사용하는 런타임 통신 스택을 생성합니다. 이 바인딩은 컴퓨터 통신을 위한 적절한 WCF(Windows Communication Foundation) 시스템 제공 선택입니다. 트랜잭션도 지원합니다.
기본 구성 NetNamedPipeBinding 은 제공된 NetTcpBinding구성과 비슷하지만 WCF 구현은 컴퓨터에서만 사용되므로 노출되는 기능이 적기 때문에 더 간단합니다. 가장 주목할 만한 차이점은 설정이 securityMode 옵션과 None 옵션만 제공한다는 Transport 것입니다. SOAP 보안 지원은 포함된 옵션이 아닙니다. 보안 동작은 선택적 securityMode 특성을 사용하여 구성할 수 있습니다.
예시
다음 예제에서는 동일한 컴퓨터에서 프로세스 간 통신을 제공하는 netNamedPipeBinding 바인딩을 보여 줍니다. 명명된 파이프는 컴퓨터에서 작동하지 않습니다.
바인딩은 클라이언트 및 서비스에 대한 구성 파일에 지정됩니다. 바인딩 형식은 요소의 binding 특성에 <endpoint> 지정됩니다. netNamedPipeBinding 바인딩을 구성하고 일부 설정을 변경하려면 바인딩 구성을 정의해야 합니다. 엔드포인트는 특성을 사용하여 이름으로 바인딩 구성을 bindingConfiguration 참조해야 합니다. 이 예제에서 바인딩 구성의 이름은 Binding1입니다.
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: net.pipe://localhost/ServiceModelSamples/service -->
<endpoint address="net.pipe://localhost/ServiceModelSamples/service"
binding="netNamedPipeBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<netNamedPipeBinding>
<binding closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
transactionFlow="false"
transferMode="Buffered"
transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288"
maxBufferSize="65536"
maxConnections="10"
maxReceivedMessageSize="65536">
<security mode="Transport">
<transport protectionLevel="EncryptAndSign" />
</security>
</binding>
</netNamedPipeBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
참고하십시오
.NET