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
- FirewallWrapper.cs
- CngKeyBlobFormat.cs
- AutomationIdentifierGuids.cs
- ComUdtElementCollection.cs
- DataGridViewAccessibleObject.cs
- SafeNativeMethods.cs
- StateBag.cs
- EFColumnProvider.cs
- MailFileEditor.cs
- BuildProvider.cs
- ErrorStyle.cs
- GridLengthConverter.cs
- UInt16Storage.cs
- DesignTimeVisibleAttribute.cs
- PieceDirectory.cs
- GridViewColumnHeader.cs
- _UncName.cs
- DataGridItem.cs
- mediaclock.cs
- CqlLexerHelpers.cs
- CursorInteropHelper.cs
- AmbiguousMatchException.cs
- ContentOperations.cs
- OracleString.cs
- ComponentCollection.cs
- PermissionToken.cs
- NetNamedPipeSecurityElement.cs
- ProcessManager.cs
- ClrProviderManifest.cs
- WebPartConnectionsCancelVerb.cs
- SparseMemoryStream.cs
- CategoryNameCollection.cs
- TypeContext.cs
- BorderSidesEditor.cs
- Renderer.cs
- BuildResult.cs
- ExpanderAutomationPeer.cs
- ReadOnlyNameValueCollection.cs
- SqlInternalConnection.cs
- RealProxy.cs
- XamlSerializer.cs
- AssertSection.cs
- MSAAWinEventWrap.cs
- DataTableClearEvent.cs
- GroupBoxAutomationPeer.cs
- ComboBoxRenderer.cs
- SqlWebEventProvider.cs
- Helpers.cs
- AsyncPostBackTrigger.cs
- ResourceProperty.cs
- FixedLineResult.cs
- Material.cs
- SchemaNames.cs
- CultureMapper.cs
- _AuthenticationState.cs
- SchemaInfo.cs
- StructuralObject.cs
- DataGridViewSelectedColumnCollection.cs
- ChildrenQuery.cs
- SoapExtension.cs
- Binding.cs
- XmlResolver.cs
- EventLogger.cs
- BrowserCapabilitiesCodeGenerator.cs
- DispatcherEventArgs.cs
- Events.cs
- WebPartExportVerb.cs
- VirtualDirectoryMapping.cs
- ProviderUtil.cs
- CommandSet.cs
- SafeFileHandle.cs
- selecteditemcollection.cs
- DataBindingExpressionBuilder.cs
- SqlBuilder.cs
- IDataContractSurrogate.cs
- BrushMappingModeValidation.cs
- Polygon.cs
- KeyEventArgs.cs
- PtsCache.cs
- MetafileHeaderWmf.cs
- SslStreamSecurityElement.cs
- Command.cs
- Scheduler.cs
- StateManagedCollection.cs
- EventLogPermissionEntry.cs
- GraphicsPath.cs
- AnnouncementInnerClient11.cs
- PageHandlerFactory.cs
- SessionEndingEventArgs.cs
- TextElementEnumerator.cs
- RSAPKCS1SignatureDeformatter.cs
- CodeExpressionStatement.cs
- EntityReference.cs
- ProcessModuleCollection.cs
- _AutoWebProxyScriptEngine.cs
- UpdateException.cs
- FormattedText.cs
- BitmapDownload.cs
- KeyInstance.cs
- VerificationAttribute.cs