【问题标题】:Odd .Net Runtime Error: system.servicemodel.fault奇怪的 .Net 运行时错误:system.servicemodel.fault
【发布时间】:2011-09-19 10:10:24
【问题描述】:

我们在系统事件日志中发现此错误的数量惊人。它涉及一个非常简单的命令行应用程序(实际上是四五行实际处理代码),它使用同一台机器上的 Web 服务。我修改了应用程序配置,它似乎解决了问题,但现在它又回来了。
错误只出现在事件查看器中,看起来有点像这样:

事件类型:错误
事件来源:.NET 运行时 2.0 错误报告
活动类别:无
事件 ID:5000
日期:19/09/2011
时间:09:26:04
用户:不适用
计算机:SQL
描述: EventType clr20r3,P1 estimatorcli.exe,P2 1.0.0.0,P3 4e410f1b,P4 mscorlib,P5 2.0.0.0,P6 4d8c128c,P7 420e,P8 51,P9 system.servicemodel.fault,P10 无。

对不起,如果这太多了。
谷歌搜索并没有带回大量信息,只是一些对 EventType 的模糊引用。我试过调试,很多时候,程序在我的 XP64 开发机器上运行良好(服务器运行 2003 Ent64)。但是,当我更新服务引用时,Visual Studio 会创建两个对 Web 服务的引用,当我尝试运行应用程序时,它会引发一个令人讨厌的错误,这似乎表明应用程序无法确定它应该使用哪些引用正在使用。删除 app.config 文件中的多余引用似乎可以解决此问题,但我已经完成了此操作并将编译的应用程序移至服务器,但仍然收到此错误。我还发现当应用程序是为 .Net 3.5 编写时,错误被列为 .Net 2.0 很有趣;服务器已安装 .Net 3.5SP1。
这可能是 Visual Studio 错误吗?如果是这样,有没有办法解决它?
谢谢。
更新:通过堆栈跟踪,我发现错误是我的错;我没有将足够的参数传递给存储过程。回想起来,我猜整个框架都按预期工作,我只是希望错误更容易阅读!

【问题讨论】:

标签: c# .net runtime error-log


【解决方案1】:

这通常是 .NET 运行时通知您应用程序中未捕获的异常的方式。

由于您有一个“简单的命令行应用程序”,请尝试放置一个 try/catch 块,同时将异常写入控制台、事件日志或某些文件。

例子:

public static int main(String[] args)
{
    try 
    {
       // other code

       return 0;
    }
    catch (Exception ex)
    {
       Console.Error.WriteLine(ex);

       // Save to file, in case this is an application that runs in the background
       // Make sure the directory exists and is writable though.
       System.IO.File.WriteAllText("C:\\TEMP\\Exception.txt", ex.ToString());

       return 1;
    }
}

【讨论】:

  • 感谢您的提示。看起来 WebServices 确实抛出了一个未捕获的异常,这很奇怪,因为我认为我已经专门捕获了所有内容。我现在有一个堆栈跟踪,所以我会看看这个异常是在哪里被抛出的。谢谢!
  • 好的...这很奇怪...我已经通读了通过捕获异常创建的文本文件,并且由于某种原因,看起来该应用程序正在尝试读取 webservice.asmx我同事的工作站上的 .cs 文件(不是我自己的!),我觉得这很奇怪。堆栈跟踪将工作路径列为我同事的 SVN 路径。这非常奇怪,因为a)它在服务器上运行,并且b)我认为他甚至没有打开过这个项目,更不用说工作了。实际的错误是转换错误,但行号不匹配,所以这需要一段时间。
  • 您可以使用实际的堆栈跟踪更新您的问题。此外,您在堆栈跟踪中看到的文件路径是编译应用程序的位置(在本例中是您的大学工作站)。
  • 我想这是有道理的;他一定是最后一个发布网络服务的人。也发现了错误;我没有向存储过程发送足够多的参数,所以我想一切都在正常工作!
【解决方案2】:
  1. 尝试捕获异常并记录
  2. 尝试使用 AppDomain.CurrentDomain.UnhandledException 捕获意外异常并记录。

【讨论】:

    猜你喜欢
    • 2014-01-21
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    相关资源
    最近更新 更多