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
- SiteMapNodeItem.cs
- ellipse.cs
- UTF8Encoding.cs
- FilteredSchemaElementLookUpTable.cs
- InlineUIContainer.cs
- SerializationEventsCache.cs
- CookielessHelper.cs
- Paragraph.cs
- SynchronizingStream.cs
- AutomationFocusChangedEventArgs.cs
- DesignTimeHTMLTextWriter.cs
- SqlCommandBuilder.cs
- FastEncoderWindow.cs
- EntityDataSourceMemberPath.cs
- DateTimeFormat.cs
- MouseGestureConverter.cs
- TypeConvertions.cs
- TreeViewItemAutomationPeer.cs
- Trigger.cs
- ConnectionManagementElement.cs
- PolyLineSegment.cs
- VectorAnimationUsingKeyFrames.cs
- RegistrySecurity.cs
- FreezableCollection.cs
- MultiSelectRootGridEntry.cs
- FormViewModeEventArgs.cs
- CodeGenerator.cs
- BinHexDecoder.cs
- SpecularMaterial.cs
- SoapCodeExporter.cs
- AsymmetricSignatureDeformatter.cs
- PartBasedPackageProperties.cs
- Module.cs
- RegexCharClass.cs
- NTAccount.cs
- TemplateEditingFrame.cs
- NamedPipeAppDomainProtocolHandler.cs
- DataBindingHandlerAttribute.cs
- PackWebResponse.cs
- FixedHighlight.cs
- exports.cs
- CodeTypeReference.cs
- ClrProviderManifest.cs
- UnsafeNativeMethods.cs
- PenThreadPool.cs
- DataComponentNameHandler.cs
- DLinqTableProvider.cs
- ProviderConnectionPoint.cs
- SafeHandles.cs
- SymmetricKey.cs
- TransactionFlowOption.cs
- OracleEncoding.cs
- WebPartDisplayModeEventArgs.cs
- TableNameAttribute.cs
- ContentValidator.cs
- Pair.cs
- ErrorFormatter.cs
- ParserExtension.cs
- COAUTHIDENTITY.cs
- QuadraticBezierSegment.cs
- BitHelper.cs
- AttributedMetaModel.cs
- CurrentChangedEventManager.cs
- LineServices.cs
- FilterFactory.cs
- ListControl.cs
- SqlUserDefinedTypeAttribute.cs
- DragDrop.cs
- SqlResolver.cs
- DependencyObjectProvider.cs
- ClosableStream.cs
- LongAverageAggregationOperator.cs
- Cursor.cs
- ErrorFormatter.cs
- MetadataItemEmitter.cs
- DataRow.cs
- storepermission.cs
- TableParaClient.cs
- DataGridDetailsPresenter.cs
- SynchronizedInputProviderWrapper.cs
- QilInvokeLateBound.cs
- DataGridRow.cs
- FontSourceCollection.cs
- CodeIdentifier.cs
- BooleanConverter.cs
- ThousandthOfEmRealPoints.cs
- ConfigurationPropertyAttribute.cs
- CalendarModeChangedEventArgs.cs
- CommandField.cs
- PairComparer.cs
- BindingBase.cs
- CodeEntryPointMethod.cs
- GetLedgerRequest.cs
- GlobalProxySelection.cs
- RawStylusSystemGestureInputReport.cs
- _HeaderInfoTable.cs
- EntityViewContainer.cs
- DesignDataSource.cs
- PropertyGridView.cs
- BitmapImage.cs