【问题标题】:Can't understand a stack trace MVC .NET无法理解堆栈跟踪 MVC .NET
【发布时间】:2016-04-16 00:57:05
【问题描述】:

我有一个 MVC .NET 应用程序正在开发中,但在生产中没有那么多。可能与权限有关?无论如何,生产站点正在提供堆栈跟踪,我完全确定问题出在哪里。

第一行 (HandleReturnMessage) 是否失败?或者第三行的真正问题是我的代码:getPDF。

错误是什么意思?参数无效?

谢谢!

[FaultException`1:参数无效。]
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +14579646
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(消息数据& msgData,Int32 类型)+622
TMVCRepository.SFRepository.IRepository.getPDF(Int32 患者 ID,Int32 docID,字符串 rootUserImagePath) +0
TMVCRepository.SFRepository.RepositoryClient.getPDF(Int32 患者 ID, Int32 docID,字符串 rootUserImagePath) +120
TMVCRepository.Controllers.ViewImageController.popupViewPDF(字符串 PatientID, String docID, String docType) +5255

【问题讨论】:

  • 当你调用 popupViewPDF(eew,PascalCase,不是 camelCase)时,用 try/catch 块包围它。在异常情况下调用ToString。记录下来。你在这里的东西是不完整的。 ToString 的结果不会。希望。取决于远程调用。顺便问一下,那是什么?
  • @Will 小改正-您实际上不需要在Exception 上调用.ToString()-您可以直接将Exception 写入日志。
  • 谢谢,在 MVC 中将异常写入日志的最佳方法是什么?看起来只是像往常一样写入文本文件。
  • @user1666620 这不是更正。您假设有一个“日志”,并且它的实现通过调用 ToString 将异常对象转换为字符串。我没有做任何假设,我只是告诉他如何从对象中获取完整的异常细节。
  • @Will 当我写入 .txt 文件或控制台时,我从不需要使用 .ToString(),因为它是隐式调用的。

标签: c# .net asp.net-mvc


【解决方案1】:

遵循 Will 的建议 - 我在生产中实施了一个日志,并通过在 getPDF 函数的每一行之前添加日志调用来跟踪问题。原来问题是 dev 和 prod 之间的数据库略有不同,并且代码试图不正确地调用另一个函数。这就是堆栈跟踪显示“无效参数”的原因。有点令人困惑,它实际上是指 getPDF 函数中的代码。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多