如何為 IronPrint 提交工程支援請求

This article was translated from English: Does it need improvement?
Translated
View the article in English

感謝您抽出時間幫助我們改進 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
$vbLabelText   $csharpLabel
  • 此程式碼區塊示範如何在 .NET 應用程式中處理例外狀況。
  • 它會將主要異常以及任何內部異常記錄到控制台,這對於偵錯目的非常有用。
Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 34,704 | Version: 2025.11 剛發表