Я пошел на многое, чтобы улучшить обработку ошибок в моем веб-сервисе - в частности, показ 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 показывать вышеупомянутую трассировку стека? Я думаю, что это будет, но не уверен; Мой системный администратор поднял этот вопрос, когда мы готовимся перейти на другой уровень развертывания.