Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Dispatcher / WebErrorHandler.cs / 1 / WebErrorHandler.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- #pragma warning disable 1634, 1691 namespace System.ServiceModel.Dispatcher { using System; using System.Collections.Generic; using System.Globalization; using System.ServiceModel; using System.Text; using System.Xml; using System.Net; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.ServiceModel.Web; using System.IO; class WebErrorHandler : IErrorHandler { bool includeExceptionDetailInFaults; public WebErrorHandler(bool includeExceptionDetailInFaults) { this.includeExceptionDetailInFaults = includeExceptionDetailInFaults; } public bool HandleError(Exception error) { return false; } public void ProvideFault(Exception error, MessageVersion version, ref Message fault) { if (version != MessageVersion.None || error == null) { return; } MemoryStream stream = new MemoryStream(); WriteErrorPage(stream, error); stream.Seek(0, SeekOrigin.Begin); fault = new HttpStreamMessage(stream); fault.Properties.Add(WebBodyFormatMessageProperty.Name, WebBodyFormatMessageProperty.RawProperty); HttpResponseMessageProperty responseProperty = new HttpResponseMessageProperty(); responseProperty.StatusCode = HttpStatusCode.BadRequest; responseProperty.Headers[HttpResponseHeader.ContentType] = "text/html"; fault.Properties.Add(HttpResponseMessageProperty.Name, responseProperty); } public void WriteErrorPage(Stream stream, Exception error) { string errorText; string stackTrace; if (this.includeExceptionDetailInFaults) { errorText = SR2.GetString(SR2.ServerErrorProcessingRequestWithDetails, error.Message); stackTrace = error.StackTrace; } else { errorText = SR2.GetString(SR2.ServerErrorProcessingRequest); stackTrace = null; } using (XmlWriter writer = XmlWriter.Create(stream)) { writer.WriteStartElement("HTML"); writer.WriteStartElement("HEAD"); writer.WriteRaw(String.Format(CultureInfo.InvariantCulture, @"{0}{1} ", SR2.GetString(SR2.HelpPageLayout), SR2.GetString(SR2.WebErrorPageTitleText))); writer.WriteEndElement(); //HEAD writer.WriteRaw(String.Format(CultureInfo.InvariantCulture, @"", SR2.GetString(SR2.WebErrorPageTitleText), errorText, stackTrace ?? string.Empty)); writer.WriteEndElement(); //HTML } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.{0}
{1}
{2}
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Events.cs
- FragmentQueryKB.cs
- FrameworkTemplate.cs
- XpsFilter.cs
- SimpleRecyclingCache.cs
- EntityClassGenerator.cs
- InvokeProviderWrapper.cs
- HttpCapabilitiesBase.cs
- CorrelationResolver.cs
- ScopelessEnumAttribute.cs
- FtpCachePolicyElement.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- DockPattern.cs
- ValueUnavailableException.cs
- RawMouseInputReport.cs
- ExpressionConverter.cs
- NavigationPropertyEmitter.cs
- DesignerLoader.cs
- DataList.cs
- AlgoModule.cs
- TreeView.cs
- WebPartCancelEventArgs.cs
- Timer.cs
- GridViewSortEventArgs.cs
- PropertyMapper.cs
- TCEAdapterGenerator.cs
- XmlSchemaSet.cs
- VectorAnimation.cs
- MenuItemStyleCollection.cs
- XPathParser.cs
- HttpContextWrapper.cs
- DataControlCommands.cs
- CharacterString.cs
- HtmlElementErrorEventArgs.cs
- Operator.cs
- RectAnimationBase.cs
- XmlSerializerVersionAttribute.cs
- AttributeSetAction.cs
- LoadedOrUnloadedOperation.cs
- PointHitTestResult.cs
- AddInSegmentDirectoryNotFoundException.cs
- QilInvoke.cs
- CachedBitmap.cs
- SmtpException.cs
- SystemInfo.cs
- EtwTrackingBehaviorElement.cs
- Graphics.cs
- Expander.cs
- VirtualDirectoryMapping.cs
- EventLogHandle.cs
- GridViewUpdateEventArgs.cs
- ConfigurationValues.cs
- RequestQueue.cs
- LinkLabelLinkClickedEvent.cs
- Image.cs
- ServicesExceptionNotHandledEventArgs.cs
- EntitySqlQueryCacheKey.cs
- HttpWebRequestElement.cs
- TextSegment.cs
- SqlDependencyUtils.cs
- BitmapDecoder.cs
- TypeToken.cs
- SqlClientFactory.cs
- SchemaObjectWriter.cs
- OptimizedTemplateContentHelper.cs
- WorkerRequest.cs
- WebAdminConfigurationHelper.cs
- PrintingPermissionAttribute.cs
- ServiceOperation.cs
- WebPartEditVerb.cs
- HttpCapabilitiesSectionHandler.cs
- Rotation3DAnimationBase.cs
- WmpBitmapEncoder.cs
- DispatchWrapper.cs
- IsolationInterop.cs
- MessageHeaderDescriptionCollection.cs
- TransactionWaitAsyncResult.cs
- log.cs
- LayoutTable.cs
- GeneralTransform.cs
- StylusPointPropertyInfo.cs
- Point4D.cs
- TrackingQueryElement.cs
- AvtEvent.cs
- IdleTimeoutMonitor.cs
- TableLayoutColumnStyleCollection.cs
- KeyNotFoundException.cs
- Interop.cs
- AssemblyCache.cs
- exports.cs
- RoleBoolean.cs
- ComContractElement.cs
- IntegrationExceptionEventArgs.cs
- CharUnicodeInfo.cs
- StateChangeEvent.cs
- FormsAuthenticationConfiguration.cs
- RenderingEventArgs.cs
- FileNotFoundException.cs
- VBIdentifierName.cs
- CharacterMetricsDictionary.cs