0

Web サービスのエラー処理を改善するために、ある程度の努力をしました。特に、次の例のように StackTrace を表示しています。

catch (Exception ex)
        {
            EventLog log = new EventLog();
            log.Source = g_EventSource;
            StringBuilder msg = new StringBuilder("Exception in UpdateRecord method has been logged:");
            msg.Append(Environment.NewLine);
            msg.Append("passedURL="); msg.Append(passedURL);
            msg.Append(Environment.NewLine);
            msg.Append(ex.Message);
            msg.Append(Environment.NewLine); 
            msg.Append(ex.Source);
            msg.Append(Environment.NewLine);
            msg.Append(ex.StackTrace);
            log.WriteEntry(msg.ToString(), EventLogEntryType.Error, 100);
            return msg.ToString();
        }

私の質問は、Web サービスを DEBUG ではなく RELEASE としてコンパイルして公開するとどうなるかということです。DEBUG モードでコンパイルするときは .dll と web.config (ソースなし) のみを発行しますが、エラーがログに記録されると、StackTrace は開発マシンのファイルの行番号を次のように示します。

C:\Documents and Settings\johna\My Documents\Visual Studio 2008\Projects\   etc.

要するに、RELEASE モードの DLL は上記の種類のスタック トレースを引き続き表示しますか? 私はそうなると思いますが、確かではありません。別のレベルの展開に移行する準備をしているときに、システム管理者がこの質問を提起しました。

4

1 に答える 1

1

スタックトレースメッセージに行番号を含めることができますが、.PDBファイルを含める必要があります。リリースモードでも問題ありません。

于 2009-12-05T00:09:38.897 に答える