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
- DBConnectionString.cs
- TextTreeRootNode.cs
- GeometryCombineModeValidation.cs
- ProfileModule.cs
- JpegBitmapDecoder.cs
- FastEncoderWindow.cs
- DecimalAverageAggregationOperator.cs
- SystemDiagnosticsSection.cs
- CustomError.cs
- TaskExceptionHolder.cs
- XmlWellformedWriter.cs
- PageStatePersister.cs
- designeractionbehavior.cs
- AliasedExpr.cs
- SymbolTable.cs
- X509Utils.cs
- TypeListConverter.cs
- EntityDesignerDataSourceView.cs
- UnsafeNativeMethodsPenimc.cs
- CodeGroup.cs
- DataGridViewCellParsingEventArgs.cs
- DragDrop.cs
- CodeDirectionExpression.cs
- ModifierKeysValueSerializer.cs
- TextFindEngine.cs
- FontCacheUtil.cs
- CryptoProvider.cs
- ColorConvertedBitmap.cs
- DBConnection.cs
- ServiceOperation.cs
- SiteMapNode.cs
- TreeViewImageIndexConverter.cs
- ChineseLunisolarCalendar.cs
- SerializerProvider.cs
- RuleElement.cs
- WpfGeneratedKnownTypes.cs
- OracleParameter.cs
- X509ServiceCertificateAuthenticationElement.cs
- SessionPageStatePersister.cs
- Int32Animation.cs
- ProfessionalColors.cs
- PersonalizationState.cs
- TraceHandlerErrorFormatter.cs
- updatecommandorderer.cs
- ScaleTransform3D.cs
- QuadraticBezierSegment.cs
- MorphHelper.cs
- ProxyFragment.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- MetafileHeader.cs
- DataErrorValidationRule.cs
- OAVariantLib.cs
- Stackframe.cs
- Rotation3DKeyFrameCollection.cs
- SqlConnectionManager.cs
- CapabilitiesUse.cs
- _ProxyChain.cs
- ListParaClient.cs
- XmlSortKey.cs
- SqlInfoMessageEvent.cs
- UInt64Storage.cs
- ConstNode.cs
- ColumnResizeUndoUnit.cs
- CustomCategoryAttribute.cs
- WebServiceTypeData.cs
- StylusPointPropertyInfoDefaults.cs
- RoutedCommand.cs
- RequestTimeoutManager.cs
- ExpressionConverter.cs
- BoolExpressionVisitors.cs
- XsltOutput.cs
- ConcurrentStack.cs
- FontStyles.cs
- NominalTypeEliminator.cs
- ReadOnlyCollectionBuilder.cs
- M3DUtil.cs
- TreeNodeStyle.cs
- User.cs
- DataGridViewAccessibleObject.cs
- TransportReplyChannelAcceptor.cs
- CipherData.cs
- TabControl.cs
- DetailsViewPageEventArgs.cs
- QueryOperationResponseOfT.cs
- DbQueryCommandTree.cs
- ParameterToken.cs
- MethodAccessException.cs
- DPTypeDescriptorContext.cs
- ExcCanonicalXml.cs
- PeerServiceMessageContracts.cs
- DataTableTypeConverter.cs
- XmlBinaryWriterSession.cs
- ClientApiGenerator.cs
- HostingPreferredMapPath.cs
- PropertyItem.cs
- FileLogRecord.cs
- MailWebEventProvider.cs
- PenCursorManager.cs
- ParentUndoUnit.cs
- XPathAncestorQuery.cs