コード例 #1
0
 public PipeConnectionListener(Uri pipeUri, HostNameComparisonMode hostNameComparisonMode, int bufferSize, List <SecurityIdentifier> allowedSids, bool useCompletionPort, int maxConnections)
 {
     PipeUri.Validate(pipeUri);
     this.pipeUri = pipeUri;
     this.hostNameComparisonMode = hostNameComparisonMode;
     this.allowedSids            = allowedSids;
     this.bufferSize             = bufferSize;
     this.pendingAccepts         = new List <PendingAccept>();
     this.useCompletionPort      = useCompletionPort;
     this.maxInstances           = Math.Min(maxConnections, 0xff);
 }
コード例 #2
0
        private void PrepareConnect(Uri remoteUri, TimeSpan timeout, out string resolvedAddress, out BackoffTimeoutHelper backoffHelper)
        {
            TimeSpan span;

            PipeUri.Validate(remoteUri);
            if (DiagnosticUtility.ShouldTraceInformation)
            {
                TraceUtility.TraceEvent(TraceEventType.Information, 0x4002a, System.ServiceModel.SR.GetString("TraceCodeInitiatingNamedPipeConnection"), new StringTraceRecord("Uri", remoteUri.ToString()), this, null);
            }
            resolvedAddress = GetPipeName(remoteUri);
            if (timeout >= TimeSpan.FromMilliseconds(300.0))
            {
                span = TimeoutHelper.Add(timeout, TimeSpan.Zero - TimeSpan.FromMilliseconds(150.0));
            }
            else
            {
                span = Ticks.ToTimeSpan((Ticks.FromMilliseconds(150) / 2L) + 1L);
            }
            backoffHelper = new BackoffTimeoutHelper(span, TimeSpan.FromMinutes(5.0));
        }