Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Messaging / Listener.cs / 1 / Listener.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // Define the representation of a ServiceModel service and its associated metadata using System; using System.ServiceModel.Dispatcher; using System.ServiceModel.Description; using System.Diagnostics; using System.Globalization; using System.Security.Principal; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; using System.Transactions; namespace Microsoft.Transactions.Wsat.Messaging { interface ICoordinationListener { void Start(); void Stop(); EndpointAddress CreateEndpointReference(AddressHeader refParam); } class CoordinationServiceHost : ServiceHost, ICoordinationListener { CoordinationService service; EndpointAddress baseEndpoint; public CoordinationServiceHost(CoordinationService service, object serviceInstance) { this.service = service; base.InitializeDescription(serviceInstance, new UriSchemeKeyedCollection()); } // This is called during Start() // The idea is to obtain a base endpoint before we're actually on the network // This prevents races between the initialization path and incoming messages protected override void InitializeRuntime() { DebugTrace.TraceEnter(this, "OnCreateListeners"); base.InitializeRuntime(); if (!(this.SingletonInstance is IWSActivationCoordinator)) { CreateBaseEndpointAddress(); } else if (DebugTrace.Info) { for (int i=0; i(); CoordinationStrings coordinationStrings = CoordinationStrings.Version(this.service.ProtocolVersion); if (sbe != null) { if (!sbe.OptionalOperationSupportingTokenParameters.ContainsKey(coordinationStrings.RegisterAction)) { sbe.OptionalOperationSupportingTokenParameters.Add(coordinationStrings.RegisterAction, new SupportingTokenParameters()); } sbe.OptionalOperationSupportingTokenParameters[coordinationStrings.RegisterAction].Endorsing.Add(CoordinationServiceSecurity.SecurityContextSecurityTokenParameters); endpoint.Binding = customBinding; } } } this.Open(); if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Opened ServiceHost for {0}", this.SingletonInstance.GetType().Name); } } catch (CommunicationException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessagingInitializationException( SR.GetString(SR.ListenerCannotBeStarted, this.baseEndpoint.Uri, e.Message), e)); } } public void Stop() { try { this.Close(); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Error); } catch (TimeoutException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Error); } } public EndpointAddress CreateEndpointReference(AddressHeader refParam) { if (this.baseEndpoint == null) { // Validating assumption that the base endpoint will be set. // We assume that this function will only be called when we're // done initializing. If we call this function earlier, the caller // has a bug. DiagnosticUtility.FailFast("Uninitialized base endpoint reference"); } EndpointAddressBuilder builder = new EndpointAddressBuilder(this.baseEndpoint); builder.Headers.Clear(); builder.Headers.Add(refParam); return builder.ToEndpointAddress(); } } } // 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
- DataGridViewCellConverter.cs
- RightsManagementEncryptionTransform.cs
- PackWebResponse.cs
- ToolStripPanel.cs
- TriState.cs
- RuleConditionDialog.cs
- HtmlInputRadioButton.cs
- NameValueFileSectionHandler.cs
- SocketManager.cs
- UserControlBuildProvider.cs
- ResponseBodyWriter.cs
- PropertySegmentSerializationProvider.cs
- SessionPageStateSection.cs
- DataPagerFieldCommandEventArgs.cs
- Compiler.cs
- SessionPageStateSection.cs
- BrowserInteropHelper.cs
- SchemaCollectionPreprocessor.cs
- SafeMarshalContext.cs
- DocumentGridContextMenu.cs
- TdsParserStaticMethods.cs
- PackUriHelper.cs
- Highlights.cs
- FontFamilyValueSerializer.cs
- ToolStripRendererSwitcher.cs
- TemplateBuilder.cs
- HttpCacheParams.cs
- CssClassPropertyAttribute.cs
- WebPartConnectionsCancelVerb.cs
- DataGridViewLayoutData.cs
- TranslateTransform3D.cs
- ManagementObject.cs
- DirectionalLight.cs
- XmlnsCache.cs
- DifferencingCollection.cs
- MarkupCompilePass2.cs
- StateMachineExecutionState.cs
- RadioButtonList.cs
- DiagnosticTrace.cs
- BuilderPropertyEntry.cs
- TextReader.cs
- TextServicesDisplayAttribute.cs
- GC.cs
- NumericPagerField.cs
- StringExpressionSet.cs
- PageAsyncTask.cs
- FileInfo.cs
- CompModSwitches.cs
- GenerateHelper.cs
- Parameter.cs
- GeneralTransform3DGroup.cs
- ShapingEngine.cs
- CodeAttributeArgument.cs
- ButtonStandardAdapter.cs
- MonitorWrapper.cs
- Vector3DKeyFrameCollection.cs
- MiniMapControl.xaml.cs
- AsymmetricSignatureFormatter.cs
- SelectionList.cs
- HttpPostedFile.cs
- RuntimeWrappedException.cs
- ColumnClickEvent.cs
- _ConnectionGroup.cs
- SessionIDManager.cs
- HttpConfigurationContext.cs
- MessageDecoder.cs
- ConsumerConnectionPointCollection.cs
- UInt16Converter.cs
- InvokeWebService.cs
- StreamReader.cs
- FixUp.cs
- CodeDelegateCreateExpression.cs
- DataServiceOperationContext.cs
- StaticTextPointer.cs
- DataGridAutoFormat.cs
- LazyTextWriterCreator.cs
- VariableValue.cs
- StylusDownEventArgs.cs
- Crc32Helper.cs
- BinaryParser.cs
- LassoSelectionBehavior.cs
- ListMarkerLine.cs
- DataTableExtensions.cs
- NamespaceCollection.cs
- DataListCommandEventArgs.cs
- GestureRecognitionResult.cs
- ProfileBuildProvider.cs
- Version.cs
- ScrollableControl.cs
- ValueHandle.cs
- ToolstripProfessionalRenderer.cs
- PolyBezierSegment.cs
- EmptyControlCollection.cs
- GridViewDesigner.cs
- StructuredProperty.cs
- ClientUtils.cs
- VirtualizedItemPattern.cs
- ModuleBuilderData.cs
- StreamGeometryContext.cs
- DataGridViewTopLeftHeaderCell.cs