繁体   English   中英

如何从 C# 中的堆栈跟踪中删除省略号?

[英]How do I remove ellipses from a stack trace in C#?

我正在尝试将堆栈跟踪记录到 C# 中的 SQL 服务器。 有时,我会得到这样的堆栈跟踪:

System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]:建立与 SQL 服务器的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称是否正确,并且 SQL 服务器配置为允许远程连接。 (提供者:TCP 提供者,错误:0 - 等待操作超时。)(Fault Detail 等于 An ExceptionDetail,可能由 IncludeExceptionDetailInFaults=true 创建,其值为:System.Data.SqlClient.SqlException:网络相关或与 SQL 服务器建立连接时发生特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确以及 SQL 服务器配置为允许远程连接。(提供程序:ZB136EF19F6A01D8616 错误) - 等待操作超时。)----> System.ComponentModel.Win32Exception:等待操作超时---内部 ExceptionDetail 堆栈跟踪结束---在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String ne wPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderMa...)。

注意SqlInternalConnectionTds 之后的.. 和SqlAuthenticationProviderMa 之后的...。 我没有在省略号中添加。 如何摆脱这个截断的文本并获得完整的异常?

谢谢!

获得完整堆栈跟踪的最佳方法通常只是调用 ToString()

例如在 MVC 中:文件:

/Shared/Error.cshtml

代码:

@model System.Web.Mvc.HandleErrorInfo
<pre>
     @Model.Exception.ToString()
</pre>

我找到了解决方案。 此问题仅发生在 FaultException 对象上。 我明确地调用了堆栈跟踪,并记录了它。 使用这种方法,一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM