Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / SMSvcHost / System / ServiceModel / Activation / NamedPipeWorkerProcess.cs / 1 / NamedPipeWorkerProcess.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Activation { using System; using System.Diagnostics; using System.Globalization; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Diagnostics; using System.ServiceModel.Activation.Diagnostics; using EventLogCategory = System.ServiceModel.Diagnostics.EventLogCategory; using EventLogEventId = System.ServiceModel.Diagnostics.EventLogEventId; class NamedPipeWorkerProcess : WorkerProcess { protected override DuplicateContext DuplicateConnection(ListenerSessionConnection session) { bool success = false; IntPtr dupedPipe = IntPtr.Zero; try { dupedPipe = (IntPtr)session.Connection.DuplicateAndClose(this.ProcessId); success = true; } #pragma warning suppress 56500 // covered by FxCOP catch (Exception exception) { if (DiagnosticUtility.IsFatal(exception)) { throw; } // this normally happens if: // A) we don't have rights to duplicate handles to the WorkerProcess NativeErrorCode == 87 // B) we fail to duplicate handle because the WorkerProcess is exiting/exited NativeErrorCode == ??? // - in the self hosted case: report error to the client // - in the web hosted case: roundrobin to the next available WorkerProcess (if this WorkerProcess is down?) #if DEBUG if (exception is CommunicationException) { int errorCode = ((System.IO.PipeException)exception.InnerException).ErrorCode; Debug.Print("NamedPipeWorkerProcess.DuplicateConnection() failed duplicating pipe for processId: " + this.ProcessId + " errorCode:" + errorCode + " exception:" + exception.Message); } #endif if (DiagnosticUtility.ShouldTraceError) { ListenerTraceUtility.TraceEvent(TraceEventType.Error, TraceCode.MessageQueueDuplicatedPipe, this, exception); } } if (success) { if (DiagnosticUtility.ShouldTraceInformation) { ListenerTraceUtility.TraceEvent(TraceEventType.Information, TraceCode.MessageQueueDuplicatedPipe, this); } return new NamedPipeDuplicateContext(dupedPipe, session.Via, session.Data); } return null; } protected override void OnDispatchSuccess() { ListenerPerfCounters.IncrementConnectionsDispatchedNamedPipe(); } protected override TransportType TransportType { get { return TransportType.NamedPipe; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeArrayIndexerExpression.cs
- TimelineGroup.cs
- CapabilitiesPattern.cs
- ControlValuePropertyAttribute.cs
- AutomationPropertyInfo.cs
- Registry.cs
- HostedBindingBehavior.cs
- SoapElementAttribute.cs
- DbCommandTree.cs
- TextTreeTextElementNode.cs
- XmlAttributeOverrides.cs
- PathSegment.cs
- WebConfigurationHostFileChange.cs
- smtpconnection.cs
- OperatingSystem.cs
- WinFormsComponentEditor.cs
- PixelFormat.cs
- SrgsText.cs
- WebPartDescriptionCollection.cs
- DataGridCell.cs
- HtmlWindowCollection.cs
- ModelTreeEnumerator.cs
- GridViewDeleteEventArgs.cs
- RangeValidator.cs
- ComboBox.cs
- ImageListStreamer.cs
- BitmapEffectGroup.cs
- TableStyle.cs
- ClientScriptItemCollection.cs
- ActivityExecutorSurrogate.cs
- sitestring.cs
- SessionStateUtil.cs
- DbProviderFactoriesConfigurationHandler.cs
- TextEditorTyping.cs
- DbParameterCollectionHelper.cs
- BlockUIContainer.cs
- DbModificationCommandTree.cs
- ConfigsHelper.cs
- linebase.cs
- TextChange.cs
- RectIndependentAnimationStorage.cs
- ImagingCache.cs
- Misc.cs
- FixedBufferAttribute.cs
- EncryptedPackage.cs
- ReferentialConstraint.cs
- ByteKeyFrameCollection.cs
- TrustLevelCollection.cs
- HtmlToClrEventProxy.cs
- ColorTranslator.cs
- AsyncPostBackTrigger.cs
- SignatureTargetIdManager.cs
- CommandField.cs
- EditorPartChrome.cs
- RawStylusInput.cs
- SubqueryRules.cs
- Cursor.cs
- HtmlCommandAdapter.cs
- HttpRequestTraceRecord.cs
- TraceUtility.cs
- MultipleViewPattern.cs
- RuleEngine.cs
- ValidationSummary.cs
- URLString.cs
- GridViewSortEventArgs.cs
- RuleSettingsCollection.cs
- ConfigXmlText.cs
- ManagementQuery.cs
- BidOverLoads.cs
- TextEditorSpelling.cs
- DataGridViewCellValidatingEventArgs.cs
- RangeContentEnumerator.cs
- SimpleHandlerBuildProvider.cs
- DesignerFrame.cs
- CodeThrowExceptionStatement.cs
- IconConverter.cs
- ColorKeyFrameCollection.cs
- StaticContext.cs
- SqlProfileProvider.cs
- shaperfactoryquerycachekey.cs
- X500Name.cs
- MediaElementAutomationPeer.cs
- Pens.cs
- ReferencedType.cs
- IdnElement.cs
- ScrollBarAutomationPeer.cs
- PTProvider.cs
- KnownIds.cs
- DispatcherEventArgs.cs
- WindowsGraphicsWrapper.cs
- ImageClickEventArgs.cs
- CodeCompileUnit.cs
- SqlDataSourceSelectingEventArgs.cs
- RequestUriProcessor.cs
- IssuanceLicense.cs
- DateBoldEvent.cs
- GradientStop.cs
- ComboBoxRenderer.cs
- DataRow.cs
- TableRow.cs