Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Activation / HttpHostedTransportConfiguration.cs / 1 / HttpHostedTransportConfiguration.cs
//---------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------------------- namespace System.ServiceModel.Activation { using System.Collections; using System.ServiceModel; using System.ServiceModel.Channels; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Globalization; using System.Net; using System.Security; class HttpHostedTransportConfiguration : HostedTransportConfigurationBase { CollectiontransportManagerDirectory; internal protected HttpHostedTransportConfiguration(string scheme) : base(scheme) { CreateTransportManagers(); } internal HttpHostedTransportConfiguration() : this(Uri.UriSchemeHttp) {} HostedHttpTransportManager CreateTransportManager(BaseUriWithWildcard listenAddress) { UriPrefixTable table = null; if (object.ReferenceEquals(this.Scheme, Uri.UriSchemeHttp)) { table = HttpChannelListener.StaticTransportManagerTable; } else { table = SharedHttpsTransportManager.StaticTransportManagerTable; } HostedHttpTransportManager httpManager = null; lock (table) { ITransportManagerRegistration registration; if (!table.TryLookupUri(listenAddress.BaseAddress, listenAddress.HostNameComparisonMode, out registration)) { httpManager = new HostedHttpTransportManager(listenAddress); table.RegisterUri(listenAddress.BaseAddress, listenAddress.HostNameComparisonMode, httpManager); } } return httpManager; } void CreateTransportManagers() { Collection tempDirectory = new Collection (); string[] bindings = HostedTransportConfigurationManager.MetabaseSettings.GetBindings(this.Scheme); foreach (string binding in bindings) { TryDebugPrint("HttpHostedTransportConfiguration.CreateTransportManagers() adding binding: " + binding); BaseUriWithWildcard listenAddress = null; if (object.ReferenceEquals(this.Scheme, Uri.UriSchemeHttp)) { listenAddress = BaseUriWithWildcard.CreateHttpUri(binding); } else { listenAddress = BaseUriWithWildcard.CreateHttpsUri(binding); } HostedHttpTransportManager httpManager = CreateTransportManager(listenAddress); if (httpManager != null) { tempDirectory.Add(httpManager); ListenAddresses.Add(listenAddress); } } transportManagerDirectory = tempDirectory; } static bool canDebugPrint = true; [Conditional("DEBUG")] static void TryDebugPrint(string message) { if (canDebugPrint) { try { Debug.Print(message); } catch (SecurityException e) { canDebugPrint = false; // not re-throwing on purpose if (DiagnosticUtility.ShouldTraceWarning) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); } } } } internal HostedHttpTransportManager GetHttpTransportManager(Uri uri) { HostedHttpTransportManager foundTransportManager = null; HostedHttpTransportManager weakTransportManager = null; foreach (HostedHttpTransportManager manager in transportManagerDirectory) { if ((string.Compare(manager.Scheme, uri.Scheme, StringComparison.OrdinalIgnoreCase) == 0) && (manager.ListenUri.Port == uri.Port)) { if (manager.HostNameComparisonMode == HostNameComparisonMode.StrongWildcard) { return manager; } if (manager.HostNameComparisonMode == HostNameComparisonMode.WeakWildcard) { weakTransportManager = manager; } if ((manager.HostNameComparisonMode == HostNameComparisonMode.Exact) && (string.Compare(manager.ListenUri.Host, uri.Host, StringComparison.OrdinalIgnoreCase) == 0)) { foundTransportManager = manager; } } } if (foundTransportManager == null) foundTransportManager = weakTransportManager; return foundTransportManager; } public override Uri[] GetBaseAddresses(string virtualPath) { // Special casing SSL settings. if (string.CompareOrdinal(this.Scheme, Uri.UriSchemeHttp) == 0 && !ServiceHostingEnvironment.IsSimpleApplicationHost) { if (HostedTransportConfigurationManager.MetabaseSettings.GetAllowSslOnly(virtualPath)) { return new Uri[0]; } } return base.GetBaseAddresses(virtualPath); } } } // 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
- AssemblyAttributes.cs
- SqlBulkCopyColumnMapping.cs
- RowType.cs
- CheckBoxStandardAdapter.cs
- ComponentDispatcherThread.cs
- SudsWriter.cs
- SecurityTokenResolver.cs
- CFStream.cs
- Binding.cs
- DefaultObjectMappingItemCollection.cs
- ContextMenuService.cs
- SqlComparer.cs
- MatrixTransform.cs
- HiddenField.cs
- BaseResourcesBuildProvider.cs
- ThreadAbortException.cs
- HebrewNumber.cs
- SiteMapDataSource.cs
- MemberDescriptor.cs
- ServiceControllerDesigner.cs
- SmiTypedGetterSetter.cs
- NativeMethods.cs
- AdapterUtil.cs
- NumberSubstitution.cs
- DocumentGridContextMenu.cs
- NetPeerTcpBindingCollectionElement.cs
- PreviewControlDesigner.cs
- iisPickupDirectory.cs
- RelatedPropertyManager.cs
- WebReferencesBuildProvider.cs
- AccessedThroughPropertyAttribute.cs
- WorkflowInstanceExtensionManager.cs
- PrimaryKeyTypeConverter.cs
- MD5HashHelper.cs
- BitStream.cs
- TextRangeAdaptor.cs
- SuppressMessageAttribute.cs
- Accessible.cs
- WindowCollection.cs
- VideoDrawing.cs
- DashStyle.cs
- PrivateFontCollection.cs
- EnterpriseServicesHelper.cs
- IteratorFilter.cs
- QueryLifecycle.cs
- HtmlSelect.cs
- DbConvert.cs
- ClientTargetCollection.cs
- ReachPageContentSerializerAsync.cs
- DBSqlParserColumn.cs
- DesignBindingPropertyDescriptor.cs
- ColumnBinding.cs
- BamlRecordHelper.cs
- RuntimeHelpers.cs
- MenuCommands.cs
- Vector.cs
- MetaColumn.cs
- MarkerProperties.cs
- ListManagerBindingsCollection.cs
- RouteValueExpressionBuilder.cs
- DataServiceQuery.cs
- WmlLinkAdapter.cs
- GridViewColumn.cs
- AsyncOperationManager.cs
- ImageFormatConverter.cs
- SourceFileInfo.cs
- COM2ExtendedTypeConverter.cs
- SHA1Managed.cs
- Triplet.cs
- PenCursorManager.cs
- SqlFacetAttribute.cs
- SamlConstants.cs
- RightsManagementEncryptedStream.cs
- DecoderFallbackWithFailureFlag.cs
- WebPageTraceListener.cs
- AsyncDataRequest.cs
- SpanIndex.cs
- VisualStyleRenderer.cs
- BaseEntityWrapper.cs
- XmlDataProvider.cs
- XmlNodeChangedEventArgs.cs
- DataGridViewHeaderCell.cs
- ToolboxItemImageConverter.cs
- BadImageFormatException.cs
- GeometryHitTestParameters.cs
- VisualProxy.cs
- HttpAsyncResult.cs
- ShutDownListener.cs
- BamlTreeUpdater.cs
- TraceFilter.cs
- WorkflowMarkupSerializer.cs
- BeginEvent.cs
- RectangleConverter.cs
- DynamicRenderer.cs
- TextServicesPropertyRanges.cs
- TraceContextRecord.cs
- Model3DGroup.cs
- CalculatedColumn.cs
- BigInt.cs
- DataSourceView.cs