Поскольку ваши pdbs не упакованы и не развернуты, вы не можете получить номера строк из ваших исключений
Как включить номера строк в трассировку стека без pdb?
Но я обхожу это путем создания «сообщения» в процессе, вы знаете, где происходит ошибка из-за значения в «сообщении».
Все мои задания на sharepoint структурированы примерно так:
public class CustomJob : SPJobDefinition {
public override void Execute() {
try {
WriteTrace("CustomJob.Execute:");
Process();
WriteTrace("CustomJob.Execute[end]");
} catch (Exception ex) {
WriteTrace(string.Format("CustomJob.Execute\nException: {0}", ex));
}
}
public void Process() {
string message = "CustomJob.Process\n";
try {
//do something
message += "value1: " + value1 + "\n";
//do something
message += "value2: " + value2 + "\n";
//do something
message += "value3: " + value3 + "\n";
} catch (Exception ex) {
WriteTrace(string.Format("CustomJob.Process\nException: {0}", ex));
}
WriteTrace(message);
}
private void WriteTrace(string message) {
//configure how you need, either write to ULS or write to event log
SPDiagnosticsService.Local.WriteTrace(0,
new SPDiagnosticsCategory("My Category",
TraceSeverity.Unexpected,
EventSeverity.Error),
TraceSeverity.Unexpected, message, ex.StackTrace);
}
}
Это позволяет мне достаточно точно отследить большинство ошибок при разработке и производстве
EDIT
Есть способы записи в журналы трассировки в 2007 году (более сложный, конечно)
http://weblogs.asp.net/erobillard/archive/2008/07/31/sharepoint-trace-logs-and-the-unified-logging-service-uls.aspx
http://msdn.microsoft.com/en-us/library/aa979522%28v=office.12%29.aspx
http://weblogs.asp.net/gunnarpeipman/archive/2009/02/25/sharepoint-writing-messages-to-uls-unified-logging-system.aspx
Но я просто написал прямо в журнал событий:
EventLog el1 = new EventLog();
el1.Source = "My Custom Source";
el1.WriteEntry(message, EventLogEntryType.Information);