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
- SourceElementsCollection.cs
- AssertSection.cs
- EventDriven.cs
- DbConnectionStringCommon.cs
- FtpRequestCacheValidator.cs
- EditableLabelControl.cs
- AttributeSetAction.cs
- RedirectionProxy.cs
- AccessControlList.cs
- MetadataCache.cs
- OracleParameter.cs
- SecurityProtocolFactory.cs
- DbConnectionPoolCounters.cs
- ColumnTypeConverter.cs
- Triangle.cs
- DesignTimeTemplateParser.cs
- DllNotFoundException.cs
- InlineUIContainer.cs
- RelatedEnd.cs
- WeakReference.cs
- SqlDataSourceView.cs
- EventLogSession.cs
- CommandPlan.cs
- IndentedWriter.cs
- XmlElementList.cs
- TranslateTransform3D.cs
- ReachFixedDocumentSerializerAsync.cs
- PartialCachingAttribute.cs
- Renderer.cs
- ResourceReferenceKeyNotFoundException.cs
- SelectorItemAutomationPeer.cs
- ZipIOLocalFileBlock.cs
- TextDecorationUnitValidation.cs
- JsonGlobals.cs
- ListItemCollection.cs
- DataGridRow.cs
- QuaternionIndependentAnimationStorage.cs
- contentDescriptor.cs
- CapabilitiesSection.cs
- ControlLocalizer.cs
- DesignerAutoFormatCollection.cs
- NamespaceImport.cs
- Stream.cs
- QueueProcessor.cs
- RoutedEventValueSerializer.cs
- Int16Converter.cs
- PeerNameRecordCollection.cs
- hwndwrapper.cs
- DataMember.cs
- SqlNotificationRequest.cs
- CellPartitioner.cs
- Trustee.cs
- DbDataReader.cs
- ScriptingJsonSerializationSection.cs
- SqlTypesSchemaImporter.cs
- IteratorDescriptor.cs
- BamlLocalizationDictionary.cs
- MiniCustomAttributeInfo.cs
- SQLDouble.cs
- recordstate.cs
- SmiSettersStream.cs
- UnmanagedHandle.cs
- ManagedWndProcTracker.cs
- AttributeCollection.cs
- WriteableBitmap.cs
- GridViewColumnCollectionChangedEventArgs.cs
- RawMouseInputReport.cs
- GroupItemAutomationPeer.cs
- FormViewAutoFormat.cs
- EdmSchemaError.cs
- XamlTemplateSerializer.cs
- ColorConverter.cs
- Dispatcher.cs
- FixUpCollection.cs
- ProcessRequestArgs.cs
- Int32CollectionConverter.cs
- ToolboxComponentsCreatedEventArgs.cs
- TaskFileService.cs
- ApplicationId.cs
- DocumentApplicationJournalEntry.cs
- TileBrush.cs
- GAC.cs
- WebPartVerbCollection.cs
- DataColumnMappingCollection.cs
- BitmapEffectState.cs
- MultiSelectRootGridEntry.cs
- SafeSecurityHandles.cs
- _UncName.cs
- ReflectionUtil.cs
- XmlSerializationReader.cs
- LocalBuilder.cs
- DelimitedListTraceListener.cs
- DocumentApplicationJournalEntry.cs
- SoapCommonClasses.cs
- CallbackValidatorAttribute.cs
- EventSourceCreationData.cs
- OdbcDataReader.cs
- AddingNewEventArgs.cs
- VisualBasicSettingsConverter.cs
- TextDecorationUnitValidation.cs