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
- safex509handles.cs
- BaseResourcesBuildProvider.cs
- Byte.cs
- TokenDescriptor.cs
- RijndaelManaged.cs
- SpecialNameAttribute.cs
- SinglePageViewer.cs
- Stroke.cs
- WhiteSpaceTrimStringConverter.cs
- XPathScanner.cs
- EditorZoneBase.cs
- _Rfc2616CacheValidators.cs
- CopyAction.cs
- ResourceContainer.cs
- OracleDataAdapter.cs
- BuildResult.cs
- WindowsFormsSectionHandler.cs
- URL.cs
- Size.cs
- CFGGrammar.cs
- SqlDataSourceStatusEventArgs.cs
- ServerProtocol.cs
- ExcludePathInfo.cs
- ApplicationSettingsBase.cs
- TranslateTransform.cs
- MailMessage.cs
- BrowsableAttribute.cs
- PackWebRequest.cs
- BrowserDefinition.cs
- TemplateAction.cs
- ColumnResizeAdorner.cs
- Tokenizer.cs
- XmlUtil.cs
- SQLInt32.cs
- RNGCryptoServiceProvider.cs
- TrackingServices.cs
- CodeExporter.cs
- Connection.cs
- OleDbPropertySetGuid.cs
- DataGridItemCollection.cs
- TableColumnCollectionInternal.cs
- DiscoveryDocumentLinksPattern.cs
- ValueProviderWrapper.cs
- LinkClickEvent.cs
- COM2IDispatchConverter.cs
- StorageTypeMapping.cs
- IBuiltInEvidence.cs
- SafeWaitHandle.cs
- RtType.cs
- AliasedExpr.cs
- Hashtable.cs
- Wildcard.cs
- FlowDocumentReaderAutomationPeer.cs
- WebBrowserUriTypeConverter.cs
- SqlClientMetaDataCollectionNames.cs
- HtmlSelect.cs
- base64Transforms.cs
- Main.cs
- BackStopAuthenticationModule.cs
- EncodingInfo.cs
- ReadOnlyTernaryTree.cs
- MessagePropertyDescription.cs
- FrameworkObject.cs
- RemotingConfiguration.cs
- WindowsFormsHostAutomationPeer.cs
- LinkClickEvent.cs
- XamlBrushSerializer.cs
- TreeNode.cs
- SamlAuthorizationDecisionStatement.cs
- FaultDescriptionCollection.cs
- UIPermission.cs
- SmtpReplyReaderFactory.cs
- XmlQueryStaticData.cs
- WebPartZoneAutoFormat.cs
- AnonymousIdentificationSection.cs
- ImageFormatConverter.cs
- GetPageCompletedEventArgs.cs
- TemplatePagerField.cs
- ConsumerConnectionPoint.cs
- EraserBehavior.cs
- TraceSource.cs
- GACIdentityPermission.cs
- HttpListenerContext.cs
- HttpListenerException.cs
- WindowsFormsHost.cs
- HtmlWindow.cs
- StylusCaptureWithinProperty.cs
- AssemblyName.cs
- RegisteredHiddenField.cs
- HttpConfigurationSystem.cs
- WebPartManager.cs
- SByteStorage.cs
- Rotation3D.cs
- WorkflowDefinitionDispenser.cs
- TableLayoutColumnStyleCollection.cs
- SafeRightsManagementEnvironmentHandle.cs
- RequestTimeoutManager.cs
- TypefaceMap.cs
- SubtreeProcessor.cs
- TreeNodeStyle.cs