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,
@"
{0}
{1}
{2}
",
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EmptyEnumerator.cs
- ImageSourceConverter.cs
- ArrayWithOffset.cs
- SizeFConverter.cs
- ResourceAttributes.cs
- Parameter.cs
- XmlSchemaObjectTable.cs
- TextTabProperties.cs
- ProgressBarAutomationPeer.cs
- SQLDateTimeStorage.cs
- UpdateEventArgs.cs
- ResourceExpressionBuilder.cs
- XmlSchemaComplexContentRestriction.cs
- SoapElementAttribute.cs
- FontNameEditor.cs
- Oid.cs
- LicFileLicenseProvider.cs
- SQLMoney.cs
- BaseDataBoundControl.cs
- Converter.cs
- DataTable.cs
- StrokeCollectionDefaultValueFactory.cs
- SectionVisual.cs
- WindowsImpersonationContext.cs
- PriorityBindingExpression.cs
- ProjectedSlot.cs
- StorageSetMapping.cs
- MetadataArtifactLoaderFile.cs
- StaticFileHandler.cs
- ScriptingWebServicesSectionGroup.cs
- SoapInteropTypes.cs
- MediaElement.cs
- HttpDebugHandler.cs
- ListView.cs
- SettingsAttributes.cs
- TemplatedWizardStep.cs
- DiscoveryExceptionDictionary.cs
- HttpListenerException.cs
- SystemColors.cs
- AssociationSetMetadata.cs
- LifetimeMonitor.cs
- AlphabeticalEnumConverter.cs
- VBCodeProvider.cs
- DescendantOverDescendantQuery.cs
- AstNode.cs
- ClientConfigurationSystem.cs
- Marshal.cs
- IntAverageAggregationOperator.cs
- GPPOINTF.cs
- XmlSchemaException.cs
- TableDetailsRow.cs
- HttpApplicationStateBase.cs
- KeyProperty.cs
- Transaction.cs
- ThreadStateException.cs
- ResizeGrip.cs
- HtmlEmptyTagControlBuilder.cs
- FormatConvertedBitmap.cs
- BindableAttribute.cs
- SystemWebCachingSectionGroup.cs
- FormsAuthenticationTicket.cs
- ObjectParameter.cs
- OletxTransactionFormatter.cs
- DoubleAnimationUsingPath.cs
- FormatVersion.cs
- Int64Storage.cs
- SecureEnvironment.cs
- UnsafeNativeMethods.cs
- LocationUpdates.cs
- OleDbException.cs
- CookielessHelper.cs
- GroupQuery.cs
- ColumnCollection.cs
- PolyLineSegment.cs
- WebPartTransformerAttribute.cs
- BitmapEffectGroup.cs
- MarkupExtensionSerializer.cs
- IgnoreFileBuildProvider.cs
- SplitterEvent.cs
- TypeHelpers.cs
- SharingService.cs
- MsmqChannelFactory.cs
- DispatcherFrame.cs
- _TLSstream.cs
- SemanticResolver.cs
- SimpleLine.cs
- PriorityItem.cs
- AuthStoreRoleProvider.cs
- PreservationFileWriter.cs
- __Error.cs
- AuthStoreRoleProvider.cs
- COM2ColorConverter.cs
- ExtensibleClassFactory.cs
- XmlTextReaderImplHelpers.cs
- FilteredReadOnlyMetadataCollection.cs
- DragStartedEventArgs.cs
- DBBindings.cs
- CheckableControlBaseAdapter.cs
- ControlOperationBehavior.cs
- MethodMessage.cs