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
- UInt64Converter.cs
- Viewport2DVisual3D.cs
- PackageRelationshipSelector.cs
- DoubleAnimationClockResource.cs
- VersionedStream.cs
- LocalizableAttribute.cs
- QueryableDataSourceView.cs
- RayMeshGeometry3DHitTestResult.cs
- ViewBox.cs
- _HeaderInfo.cs
- HtmlInputReset.cs
- Rect.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- BitmapImage.cs
- DefaultHttpHandler.cs
- SqlServices.cs
- Deflater.cs
- KoreanLunisolarCalendar.cs
- XmlSchemaChoice.cs
- Exceptions.cs
- StreamGeometryContext.cs
- XamlSerializerUtil.cs
- SoapServerProtocol.cs
- TrustManager.cs
- _HeaderInfo.cs
- RegexStringValidator.cs
- PackageDigitalSignature.cs
- XPathNodePointer.cs
- CqlGenerator.cs
- ManifestResourceInfo.cs
- ValidatedControlConverter.cs
- DataBindingExpressionBuilder.cs
- IgnoreDeviceFilterElement.cs
- FrameworkElement.cs
- PrimitiveType.cs
- BackStopAuthenticationModule.cs
- ObjectViewQueryResultData.cs
- LongValidator.cs
- EntityDesignerBuildProvider.cs
- QueryExtender.cs
- ADMembershipUser.cs
- ChangeDirector.cs
- CodeRemoveEventStatement.cs
- MetabaseServerConfig.cs
- TableRow.cs
- DataObjectEventArgs.cs
- BadImageFormatException.cs
- Separator.cs
- PropertyOrder.cs
- EventItfInfo.cs
- CodeMemberEvent.cs
- DictationGrammar.cs
- ManagedCodeMarkers.cs
- MethodToken.cs
- ReaderWriterLock.cs
- shaperfactoryquerycacheentry.cs
- InkPresenter.cs
- UriScheme.cs
- LoaderAllocator.cs
- MetadataWorkspace.cs
- TabControlCancelEvent.cs
- Convert.cs
- StringSorter.cs
- DataGridViewRow.cs
- DataGridViewSelectedCellCollection.cs
- TemplateField.cs
- SqlHelper.cs
- IIS7WorkerRequest.cs
- ReferenceList.cs
- BackgroundWorker.cs
- Translator.cs
- ColumnWidthChangedEvent.cs
- ProjectionPathSegment.cs
- Events.cs
- IOThreadTimer.cs
- ElementUtil.cs
- SqlFormatter.cs
- VirtualizingStackPanel.cs
- SchemaImporterExtension.cs
- MasterPageBuildProvider.cs
- TemplatedWizardStep.cs
- StringSource.cs
- ToolZone.cs
- HostSecurityManager.cs
- SqlProfileProvider.cs
- ScriptIgnoreAttribute.cs
- TemplateBuilder.cs
- ActiveXSite.cs
- QilExpression.cs
- TextDecoration.cs
- WpfXamlType.cs
- SystemGatewayIPAddressInformation.cs
- StorageInfo.cs
- HeaderUtility.cs
- StreamSecurityUpgradeAcceptorBase.cs
- MetadataCache.cs
- AnnotationComponentManager.cs
- DataView.cs
- FactoryMaker.cs
- PageCatalogPart.cs