Показывает Exception StackTrace, полезное в сборке RELEASE или только в DEBUG .dll - PullRequest
0 голосов
/ 05 декабря 2009

Я пошел на многое, чтобы улучшить обработку ошибок в моем веб-сервисе - в частности, показ 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();
        }

Мой вопрос: что произойдет, когда я опубликую свой веб-сервис, скомпилировав его как RELEASE вместо DEBUG? Я публикую только .dll и web.config (без источника) сейчас, когда я компилирую в режиме DEBUG, но когда регистрируется ошибка, StackTrace указывает на номера строк файла (ов) в моей машине разработки, например:

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

Короче говоря, будет ли DLL-библиотека режима RELEASE показывать вышеупомянутую трассировку стека? Я думаю, что это будет, но не уверен; Мой системный администратор поднял этот вопрос, когда мы готовимся перейти на другой уровень развертывания.

1 Ответ

1 голос
/ 05 декабря 2009

В сообщениях Stack Trace могут быть номера строк, но вам нужно включить файлы .PDB. Нет проблем даже в режиме релиза.

...