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
- EnvelopedPkcs7.cs
- ComponentFactoryHelpers.cs
- StrokeDescriptor.cs
- PanelDesigner.cs
- MarkupExtensionSerializer.cs
- XmlQueryContext.cs
- ColumnCollection.cs
- TablePatternIdentifiers.cs
- DefaultValueMapping.cs
- RuleSetDialog.Designer.cs
- HtmlTextBoxAdapter.cs
- CultureInfoConverter.cs
- VirtualPath.cs
- Duration.cs
- PointLightBase.cs
- LocalIdKeyIdentifierClause.cs
- ColorAnimationBase.cs
- TextUtf8RawTextWriter.cs
- AVElementHelper.cs
- ValidationRuleCollection.cs
- RtfFormatStack.cs
- SwitchElementsCollection.cs
- DataDesignUtil.cs
- ReachDocumentReferenceSerializer.cs
- PropertyCondition.cs
- TabletDeviceInfo.cs
- CodeAccessSecurityEngine.cs
- Bits.cs
- HScrollProperties.cs
- RegexCode.cs
- JavaScriptObjectDeserializer.cs
- TraceInternal.cs
- XmlSerializationGeneratedCode.cs
- FileSystemInfo.cs
- XPathBinder.cs
- MessageQueuePermissionEntryCollection.cs
- DataGridViewRowCollection.cs
- CqlErrorHelper.cs
- RegexCompiler.cs
- LessThan.cs
- sqlpipe.cs
- SoapInteropTypes.cs
- EntityTypeEmitter.cs
- DataTemplate.cs
- SchemaImporterExtensionElement.cs
- BulletedListEventArgs.cs
- DropSource.cs
- BamlBinaryReader.cs
- DefaultAuthorizationContext.cs
- KnownTypesHelper.cs
- BinaryFormatterSinks.cs
- HtmlInputControl.cs
- KeyGestureValueSerializer.cs
- Odbc32.cs
- CodeTypeParameter.cs
- PointCollection.cs
- ObjectPersistData.cs
- SessionKeyExpiredException.cs
- Transform.cs
- SByte.cs
- TextTreeDeleteContentUndoUnit.cs
- ProcessStartInfo.cs
- WpfXamlLoader.cs
- WindowsFont.cs
- XmlHierarchicalEnumerable.cs
- HtmlTextArea.cs
- clipboard.cs
- XMLUtil.cs
- IgnoreFileBuildProvider.cs
- FixedDocument.cs
- linebase.cs
- PenThreadWorker.cs
- AbstractSvcMapFileLoader.cs
- PriorityQueue.cs
- ProviderSettingsCollection.cs
- CommandID.cs
- TextTreeUndo.cs
- MimeWriter.cs
- PropertyBuilder.cs
- DbTransaction.cs
- GridViewCancelEditEventArgs.cs
- DateTimeConstantAttribute.cs
- TrustSection.cs
- BoundingRectTracker.cs
- CompositeFontFamily.cs
- EntityContainerEntitySetDefiningQuery.cs
- XmlSchemaInfo.cs
- CanonicalFontFamilyReference.cs
- ToolStripMenuItem.cs
- QilList.cs
- AttachedAnnotation.cs
- EdmSchemaAttribute.cs
- CreateParams.cs
- RegistryHandle.cs
- cookie.cs
- XmlSchemaAppInfo.cs
- DaylightTime.cs
- XsltSettings.cs
- RegistryConfigurationProvider.cs
- WmlImageAdapter.cs