如何為IronPrint提交工程支援請求
感謝您抽出時間幫助我們改進IronPrint並解決您可能遇到的任何問題。 我們絕大多數的功能和更新都是由客戶要求驅動的,我們認為軟體開發是客戶和開發人員之間的雙向對話。
為了提供有效的支持,我們的工程團隊需要有效率地重現問題並建立回歸測試。 我們遇到的大多數問題都與平台或運行時有關,因此我們需要非常簡潔的資訊。
請將所有支援請求發送至support@ironsoftware.com。
對問題的簡明扼要的描述
一份好的技術報告必須包含足夠的資訊來重現問題。 想像一下,你正在向同事報告問題,或是在 Stack Overflow 上發布問題。
錯誤報告應包含以下內容:
- 清楚描述您所經歷的症狀,以及您對症狀成因的任何想法。
- 日誌檔(見下圖)
- 環境: IronPrint版本、作業系統和.NET執行時期版本(如適用,請提供確切的雲端環境資訊)
為了優先處理您的工單,請盡可能提供以下資訊:
- 一個能夠完全重現該問題的範例項目
- 一段類似 Stack Overflow 風格的程式碼片段(請勿截圖程式碼)
- 症狀/異常情況的螢幕截圖
- 異常訊息文字(異常 + 內部異常)
- 程式停止運作或退出的具體調試點(程式碼中)。
- 輸入參數和資源:影像和 PDF
如何附加範例項目
一個能夠準確地重現整個問題的範例項目,可以讓我們的工程師簡單快速地識別和理解問題。
這是可復現性的黃金標準,通常可以加快支援請求到達最高層級的處理速度。
我們首選的格式是壓縮的、簡單的、獨立的.NET控制台或Web應用程式專案:
- 傳送 Google Drive 或 Dropbox 連結時,請啟用完全分享。
- 不需要 bin 資料夾,因為它會使 zip 檔案體積增大。
請同時提供:
- 輸入文件(工作文件和非工作文件),包括 PDF 和圖像。
// Example of how to capture exceptions and log them
using System;
namespace IronPrintSupportRequest
{
class Program
{
static void Main(string[] args)
{
try
{
// Simulate a part of your process where an exception might occur
ProcessIronPrintJob();
}
catch (Exception ex)
{
// Log the exception details
Console.WriteLine("An error occurred:");
Console.WriteLine($"Message: {ex.Message}");
Console.WriteLine($"Stack Trace: {ex.StackTrace}");
// If there's an inner exception, log that as well
if (ex.InnerException != null)
{
Console.WriteLine("Inner Exception:");
Console.WriteLine($"Message: {ex.InnerException.Message}");
Console.WriteLine($"Stack Trace: {ex.InnerException.StackTrace}");
}
}
}
static void ProcessIronPrintJob()
{
// Simulate a function that may throw an exception
throw new InvalidOperationException("Simulated exception for demonstration purposes.");
}
}
}
// Example of how to capture exceptions and log them
using System;
namespace IronPrintSupportRequest
{
class Program
{
static void Main(string[] args)
{
try
{
// Simulate a part of your process where an exception might occur
ProcessIronPrintJob();
}
catch (Exception ex)
{
// Log the exception details
Console.WriteLine("An error occurred:");
Console.WriteLine($"Message: {ex.Message}");
Console.WriteLine($"Stack Trace: {ex.StackTrace}");
// If there's an inner exception, log that as well
if (ex.InnerException != null)
{
Console.WriteLine("Inner Exception:");
Console.WriteLine($"Message: {ex.InnerException.Message}");
Console.WriteLine($"Stack Trace: {ex.InnerException.StackTrace}");
}
}
}
static void ProcessIronPrintJob()
{
// Simulate a function that may throw an exception
throw new InvalidOperationException("Simulated exception for demonstration purposes.");
}
}
}
' Example of how to capture exceptions and log them
Imports System
Namespace IronPrintSupportRequest
Friend Class Program
Shared Sub Main(ByVal args() As String)
Try
' Simulate a part of your process where an exception might occur
ProcessIronPrintJob()
Catch ex As Exception
' Log the exception details
Console.WriteLine("An error occurred:")
Console.WriteLine($"Message: {ex.Message}")
Console.WriteLine($"Stack Trace: {ex.StackTrace}")
' If there's an inner exception, log that as well
If ex.InnerException IsNot Nothing Then
Console.WriteLine("Inner Exception:")
Console.WriteLine($"Message: {ex.InnerException.Message}")
Console.WriteLine($"Stack Trace: {ex.InnerException.StackTrace}")
End If
End Try
End Sub
Private Shared Sub ProcessIronPrintJob()
' Simulate a function that may throw an exception
Throw New InvalidOperationException("Simulated exception for demonstration purposes.")
End Sub
End Class
End Namespace
- 此程式碼區塊示範如何在.NET應用程式中處理例外狀況。
- 它會將主要異常以及任何內部異常記錄到控制台,這對於偵錯目的非常有用。

