如何針對 IronPrint 提交工程支援請求

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

感謝您撥冗協助我們改進 IronPrint,並協助解決您可能遇到的任何問題。 我們絕大多數的功能與更新皆源自客戶需求,我們將軟體開發視為客戶與開發人員之間的一場雙向對話。

為提供有效的技術支援,我們的工程團隊需要能高效重現問題並建立回歸測試。 我們遇到的問題大多與特定平台或執行環境相關,因此需要非常簡潔的資訊。

請將所有支援請求寄送至 support@ironsoftware.com./support@ironsoftware.com

對問題的簡明清晰描述

一份優質的技術報告必須包含足夠的資訊,以便重現該問題。 請設想您正在向同事回報此問題,或將其發佈在 Stack Overflow 上。

錯誤報告應包含:

  • 請清楚描述您遇到的問題症狀,以及您對其成因的任何想法。
  • 日誌檔案(詳見下文)
  • 環境:IronPrint 版本、作業系統及 .NET 執行環境版本(如有,請註明確切的雲端環境)

請盡可能提供以下資訊,以便優先處理您的請求:

  • 一個能完整重現此問題的範例專案
  • 採用 Stack Overflow 風格的程式碼片段(請勿截圖顯示程式碼)
  • 症狀/例外狀況的螢幕截圖
  • 例外訊息文字(例外 + 內層例外)
  • 程式碼中導致程序停止運作或退出的具體除錯點
  • 輸入參數與素材:圖片及 PDF

如何附加範例專案

一個能精確複製整個問題並獨立存在的範例專案,可讓我們的工程師簡單且迅速地識別並理解該問題。

這是 可重現性的黃金標準,通常能讓支援請求優先處理。

我們偏好的格式為ZIP檔,內容應為一個簡單的獨立 .NET 控制台或網頁應用程式專案:

  • 傳送 Google 雲端硬碟或 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 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 41,154 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPrint
執行範例程式,親眼見證您的文件送印。