void IServiceBehavior.ApplyDispatchBehavior( ServiceDescription description, ServiceHostBase serviceHostBase) { ServiceMetadataExtension sme = ServiceMetadataExtension.EnsureServiceMetadataExtension(serviceHostBase); foreach (ChannelDispatcher dispatcher in serviceHostBase.ChannelDispatchers) { if (IncludeExceptionDetailInFaults) // may be set also in ServiceBehaviorAttribute { dispatcher.IncludeExceptionDetailInFaults = true; } } if (HttpHelpPageEnabled) { Uri uri = serviceHostBase.CreateUri("http", HttpHelpPageUrl); if (uri != null) { // FIXME: wrong. It should add help page sme.EnsureChannelDispatcher(false, "http", uri, HttpHelpPageBinding); } } if (HttpsHelpPageEnabled) { Uri uri = serviceHostBase.CreateUri("https", HttpsHelpPageUrl); if (uri != null) { // FIXME: wrong. It should add help page sme.EnsureChannelDispatcher(false, "https", uri, HttpsHelpPageBinding); } } }
void ApplyBehavior(ServiceDescription description, ServiceHostBase host) { ServiceMetadataExtension mex = ServiceMetadataExtension.EnsureServiceMetadataExtension(description, host); SetExtensionProperties(description, host, mex); CustomizeMetadataEndpoints(description, host, mex); CreateHttpGetEndpoints(description, host, mex); }
void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription description, ServiceHostBase serviceHostBase) { if (!(this.HttpGetEnabled || this.HttpsGetEnabled)) { return; } ServiceMetadataExtension mex = ServiceMetadataExtension.EnsureServiceMetadataExtension(description, serviceHostBase); CreateHealthEndpoints(description, serviceHostBase, mex); }
void IServiceBehavior.ApplyDispatchBehavior( ServiceDescription description, ServiceHostBase serviceHostBase) { ServiceMetadataExtension sme = ServiceMetadataExtension.EnsureServiceMetadataExtension(serviceHostBase); //Find ChannelDispatcher for Mex, and add a MexInstanceContextProvider //to it foreach (ChannelDispatcherBase cdb in serviceHostBase.ChannelDispatchers) { ChannelDispatcher cd = cdb as ChannelDispatcher; if (cd == null) { continue; } foreach (EndpointDispatcher ed in cd.Endpoints) { if (ed.ContractName == MexContractName) { ed.DispatchRuntime.InstanceContextProvider = new MexInstanceContextProvider(serviceHostBase); } } } if (HttpGetEnabled) { Uri uri = serviceHostBase.CreateUri("http", HttpGetUrl); if (uri != null) { sme.EnsureChannelDispatcher(true, "http", uri, HttpGetBinding); } } if (HttpsGetEnabled) { Uri uri = serviceHostBase.CreateUri("https", HttpsGetUrl); if (uri != null) { sme.EnsureChannelDispatcher(true, "https", uri, HttpsGetBinding); } } }
void IServiceBehavior.ApplyDispatchBehavior(System.ServiceModel.Description.ServiceDescription description, ServiceHostBase serviceHostBase) { if (this.includeExceptionDetailInFaults) { for (int i = 0; i < serviceHostBase.ChannelDispatchers.Count; i++) { ChannelDispatcher dispatcher = serviceHostBase.ChannelDispatchers[i] as ChannelDispatcher; if (dispatcher != null) { dispatcher.IncludeExceptionDetailInFaults = true; } } } if (this.httpHelpPageEnabled || this.httpsHelpPageEnabled) { ServiceMetadataExtension mex = ServiceMetadataExtension.EnsureServiceMetadataExtension(description, serviceHostBase); this.SetExtensionProperties(mex, serviceHostBase); this.CreateHelpPageEndpoints(description, serviceHostBase, mex); } }
void IServiceBehavior.ApplyDispatchBehavior( ServiceDescription description, ServiceHostBase serviceHostBase) { ServiceMetadataExtension sme = ServiceMetadataExtension.EnsureServiceMetadataExtension(serviceHostBase); foreach (var dispatcherBase in serviceHostBase.ChannelDispatchers) { var dispatcher = dispatcherBase as ChannelDispatcher; if (dispatcher == null) // non-ChannelDispatcher ChannelDispatcherBase instance. { continue; } if (IncludeExceptionDetailInFaults) // may be set also in ServiceBehaviorAttribute { dispatcher.IncludeExceptionDetailInFaults = true; } } if (HttpHelpPageEnabled) { Uri uri = serviceHostBase.CreateUri("http", HttpHelpPageUrl); if (uri != null) { sme.EnsureChannelDispatcher(false, "http", uri, HttpHelpPageBinding); } } if (HttpsHelpPageEnabled) { Uri uri = serviceHostBase.CreateUri("https", HttpsHelpPageUrl); if (uri != null) { sme.EnsureChannelDispatcher(false, "https", uri, HttpsHelpPageBinding); } } }