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
- EnumValAlphaComparer.cs
- DataSourceXmlSerializer.cs
- PagesSection.cs
- SmtpAuthenticationManager.cs
- BindingListCollectionView.cs
- ContextProperty.cs
- ProxyElement.cs
- DataServiceExpressionVisitor.cs
- TextServicesCompartmentContext.cs
- EntityDataSourceContextDisposingEventArgs.cs
- OracleParameterCollection.cs
- ScrollBar.cs
- FunctionParameter.cs
- ValidationErrorInfo.cs
- Object.cs
- Timeline.cs
- ApplicationActivator.cs
- CursorConverter.cs
- MimeMapping.cs
- SystemIcmpV6Statistics.cs
- PolicyDesigner.cs
- OneOfScalarConst.cs
- HtmlTernaryTree.cs
- FloaterParaClient.cs
- ReferenceService.cs
- DynamicMethod.cs
- ThreadStaticAttribute.cs
- MemoryFailPoint.cs
- StrokeCollection2.cs
- GroupStyle.cs
- FileDialog.cs
- SafeBitVector32.cs
- LoginDesigner.cs
- TablePatternIdentifiers.cs
- RegexTree.cs
- ValueTypeIndexerReference.cs
- BuildResultCache.cs
- OpenFileDialog.cs
- baseaxisquery.cs
- ObjectSet.cs
- DebugView.cs
- PolyLineSegmentFigureLogic.cs
- RefType.cs
- EqualityComparer.cs
- DeferredSelectedIndexReference.cs
- SecurityRuntime.cs
- AppDomainEvidenceFactory.cs
- NavigationPropertyEmitter.cs
- AppDomainManager.cs
- documentation.cs
- ReferenceSchema.cs
- DataServiceStreamResponse.cs
- LogFlushAsyncResult.cs
- Attributes.cs
- Permission.cs
- XmlnsDefinitionAttribute.cs
- XmlILAnnotation.cs
- BigInt.cs
- FixedHyperLink.cs
- CompilationLock.cs
- ProcessThread.cs
- WsatTransactionHeader.cs
- Fonts.cs
- AttributeAction.cs
- ChineseLunisolarCalendar.cs
- TreeBuilderBamlTranslator.cs
- XPathDescendantIterator.cs
- DataSourceGroupCollection.cs
- CodeNamespace.cs
- DataStreams.cs
- CounterSample.cs
- URLMembershipCondition.cs
- ColorMatrix.cs
- X509ChainPolicy.cs
- PeerToPeerException.cs
- ColumnProvider.cs
- ValidationError.cs
- XmlDocumentViewSchema.cs
- CheckBoxBaseAdapter.cs
- Column.cs
- FormatterServices.cs
- DrawTreeNodeEventArgs.cs
- ToggleButtonAutomationPeer.cs
- CodeObject.cs
- SubpageParaClient.cs
- XmlMapping.cs
- HtmlInputPassword.cs
- ValidationService.cs
- __FastResourceComparer.cs
- SrgsSubset.cs
- RichTextBox.cs
- SamlAuthenticationClaimResource.cs
- DrawingVisual.cs
- UrlRoutingHandler.cs
- DataGridViewRowCancelEventArgs.cs
- HandlerMappingMemo.cs
- TextRangeEditTables.cs
- SmtpDigestAuthenticationModule.cs
- CodeEventReferenceExpression.cs
- Token.cs