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
- ScriptHandlerFactory.cs
- WorkflowOperationInvoker.cs
- TypeReference.cs
- ParagraphVisual.cs
- ToolStripItemImageRenderEventArgs.cs
- Codec.cs
- XmlParserContext.cs
- WindowsPrincipal.cs
- PropertyGeneratedEventArgs.cs
- PopupControlService.cs
- XmlArrayItemAttributes.cs
- SqlBuilder.cs
- ServiceOperationParameter.cs
- InstalledVoice.cs
- BuildTopDownAttribute.cs
- DesignTimeParseData.cs
- FontSourceCollection.cs
- Overlapped.cs
- SqlHelper.cs
- StateMachine.cs
- ResourceExpressionBuilder.cs
- GetPageCompletedEventArgs.cs
- ItemList.cs
- ToolStripComboBox.cs
- PropertyGeneratedEventArgs.cs
- AuthorizationRuleCollection.cs
- CryptoKeySecurity.cs
- MarkupExtensionReturnTypeAttribute.cs
- XmlWrappingWriter.cs
- RuleRefElement.cs
- ObjectDataSourceMethodEditor.cs
- ConnectionProviderAttribute.cs
- WmlCommandAdapter.cs
- IssuanceLicense.cs
- DataRelationPropertyDescriptor.cs
- PageFunction.cs
- ToolStripItemRenderEventArgs.cs
- SqlUdtInfo.cs
- TypedElement.cs
- DataGridViewImageCell.cs
- HttpModuleCollection.cs
- Deflater.cs
- UserPreferenceChangedEventArgs.cs
- CacheAxisQuery.cs
- WebServiceFaultDesigner.cs
- TextSimpleMarkerProperties.cs
- MSAAEventDispatcher.cs
- HttpConfigurationContext.cs
- CuspData.cs
- ActivityTypeCodeDomSerializer.cs
- VectorConverter.cs
- UInt16.cs
- Int32AnimationUsingKeyFrames.cs
- TreeNodeCollection.cs
- SpellerError.cs
- RadioButtonRenderer.cs
- ObjectAssociationEndMapping.cs
- CollectionViewGroup.cs
- RegistryConfigurationProvider.cs
- NativeMethods.cs
- XPathDocument.cs
- NullableFloatAverageAggregationOperator.cs
- SafeFindHandle.cs
- XmlSchemaComplexContentExtension.cs
- DbCommandDefinition.cs
- BitmapSource.cs
- OverlappedAsyncResult.cs
- Oid.cs
- X509CertificateStore.cs
- OleStrCAMarshaler.cs
- BitmapMetadataBlob.cs
- DefaultBinder.cs
- TemplateInstanceAttribute.cs
- MediaElement.cs
- DetailsViewUpdatedEventArgs.cs
- IconConverter.cs
- Line.cs
- BooleanConverter.cs
- SecurityHelper.cs
- ToolStrip.cs
- SQLBytes.cs
- AuthStoreRoleProvider.cs
- ListBase.cs
- DefaultMergeHelper.cs
- AbsoluteQuery.cs
- MethodRental.cs
- MailAddress.cs
- DataSourceCacheDurationConverter.cs
- DecoderExceptionFallback.cs
- MdiWindowListItemConverter.cs
- TraceSwitch.cs
- XmlReader.cs
- ResourcesChangeInfo.cs
- IPHostEntry.cs
- SkinBuilder.cs
- DataFieldConverter.cs
- TemplateBindingExpression.cs
- XmlReturnWriter.cs
- MatrixStack.cs
- Stylesheet.cs