Tag: exception

如何记录exception信息以进行故障排除?

我目前正在对Windows服务进行维护,并且在代码中的某些点处存在一些exception处理(例如,来自计时器和其他外部事件的回调): try { … } catch (Exception ex) { _logger.Log(“Unhandled exception: {0}\r\n{1}”, ex.Message, ex.StackTrace); Environment.FailFast(“Fatal error.”); } 记录exception信息有助于排除出错的问题。 但是,有时候有趣的信息是内部exception,这使得很难确定问题的根本原因。 例如, TypeInitializationException可能很难理解。 是否有更好的方法来记录exception信息以进行故障排除?

无法以编程方式反序列化SOAP消息

当我尝试反序列化soap消息时,我得到以下exception。 我这样做是因为我有我想在测试中重用的响应文件。 我不能使用真实的服务或类似的东西,因为它不适合我们的测试框架的架构。 Test ‘MyUnitTestMethod’ failed: System.InvalidOperationException : There is an error in XML document (1, 2). —-> System.InvalidOperationException : was not expected. at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream) private const string _content = @” 0 name test1@mail.com “; /// [System.CodeDom.Compiler.GeneratedCodeAttribute(“System.Xml”, “2.0.50727.3082”)] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute(“code”)] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, […]

获取try..catch中的Exception对象以包含FULL stacktrace,当前它被截断

有人可以帮忙吗? 我试图在try..catch的捕获中获得完整的堆栈跟踪。 目前它被截断为仅包含错误所在的当前方法…. 让我解释..目前我的堆栈跟踪包括方法“第三”,其中错误发生但第一和第二不包括在内,我相信这是设计的。 private void First() { this.Second(); } private void Second() { this.Third(); } private void Third() { try { throw new SystemException(“ERROR HERE!”); } catch (Exception ex) { // I WILL LOG THE EXCEPTION object “EX” here ! but ex.StackTrace is truncated! } } 我已经看到了在STRING中获得完整堆栈跟踪的一些技巧,但问题是我的日志框架需要一个类型为“Exception”的对象,但是我的exception的变量(ex)是有效的但是属性StackTrace被截断了。 无论如何我有一个完整的堆栈跟踪可以收到一个完整的exception,所以我仍然可以发送我的“EX”,但这次它将有一个UNtruncated堆栈跟踪。 UnhandledErrror事件似乎工作就好像我到达这里Exception有一个堆栈跟踪并完全填充… 我真的很感激任何反馈..

使用SQLite的System.AccessViolationException

现在,我正在处理这个错误: An unhandled exception of type ‘System.AccessViolationException’ occurred in Unknown Module. Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 没有调用堆栈,因为没有为抛出它的DLL加载模块。 我有一个应用程序枚举整个注册表,并尝试将所有键/值保存到SQLite数据库文件,作为注册表快照。 它不是贪婪的,如果它无法访问某些键,那些键被丢弃等等: using Microsoft.Win32; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Data; using System.Data.SQLite; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading; […]

System.Reflection.TargetInvocationException; 需要帮助理解

这个例外意味着什么,我该怎么做才能解决它?

如何在C#中的exception中获取错误号而不是错误消息?

有没有办法可以获得Exceptions的相应错误代码? 我需要抛出exception错误代码而不是它的消息,以便我根据错误代码向用户显示正确的消息。

如何捕获此WPF位图加载exception?

我正在开发一个应用程序,它使用.NET 3.5 sp1和C#从Web加载位图。 加载代码如下所示: try { CurrentImage = pics[unChosenPics[index]]; bi = new BitmapImage(CurrentImage.URI); // BitmapImage.UriSource must be in a BeginInit/EndInit block. bi.DownloadCompleted += new EventHandler(bi_DownloadCompleted); AssessmentImage.Source = bi; } catch { System.Console.WriteLine(“Something broke during the read!”); } 并且在bi_DownloadCompleted上加载的代码是: void bi_DownloadCompleted(object sender, EventArgs e) { try { double dpi = 96; int width = bi.PixelWidth; int […]

使用长时间运行的后台消费者任务时,Task.Factory.StartNew中的静默exception?

这通知未处理的exception: new Thread(_ => { throw new Exception(); }).Start(); 这没有(至少在你等待/检索结果之前): Task.Factory.StartNew(() => { throw new Exception(); }); 为什么? 发生exception的线程发生了什么? 它死了吗? 这是一个运行任务但不需要其结果或需要等待它的问题,如下所示: _operationQueue = new BlockingCollection(); Task.Factory.StartNew(() => { foreach (var item in _operationQueue.GetConsumingEnumerable()) { // do something that throws } }, TaskCreationOptions.LongRunning); 在这种情况下, _operationQueue处于什么状态? 我知道我可以使用Continition with TaskContinuationOptions.OnlyOnFaulted,你能继续处理吗?

WCF MaxConcurrentSessions已超出

我遇到了公司申请的问题。 我将总结系统的关键要素: 我公司的系统在Windows XP和7(Home,Pro,Basic)机器上运行了几年。 它是用.NET 4.0编写的,基于WCF。 它使用默认限制值(MaxConcurrentSessions = 100 * CPU(4):足以支持我们的工作负载)。 主要服务由独立的deamon进程(不是IIS)托管。 主服务配置为Multithraded / PerSession实例。 该协议是Reliable NET.TCP。 不超过10个客户端同时访问该服务。 问题是,只有在Windows 7上,间歇性地,由于MaxConcurrentSessions限制(不可能!!!),我得到(我发现WCF完全跟踪日志)“服务器太忙的exception”。 你对这种奇怪的行为有什么看法吗? 谢谢你,祝你新年快乐! 安东尼奥

Visual Studio:代码分析器,用于确定方法可以抛出的exception?

Java的一个好处,也是一个诅咒,是你总是知道一个方法可以抛出什么exception。 是否有静态代码分析工具可以确定方法可以抛出的exception? 能够输入///并让xml文档声明部分自动填充块会很棒