簡體   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