Por que o IntelliTrace não mostra o código?
-
17-09-2020 - |
Pergunta
Estou depurando um aplicativo em um servidor Azure usando o IntelliTrace.Às vezes consigo ver o código que originou uma exceção, mas às vezes não consigo.E as exceções cujo respectivo código não consigo ver são sempre as mesmas.
Há algum motivo pelo qual continuo recebendo a mesma mensagem (Nenhuma fonte disponível) na nova guia quando clico duas vezes na exceção para começar a depurá-la?
Já sei qual é a exceção que preciso fazer para resolver, mas também preciso saber onde encontrar o código!Ajuda.
Exemplo
@SLaks
Um exemplo das exceções que recebo é este:
"The condition specified using HTTP conditional header(s) is not met."
Pilha de chamadas:
[External Code]
System.dll!System.Net.LazyAsyncResult.Complete(System.IntPtr userToken = {unknown})
[External Code]
System.dll!System.Net.ContextAwareResult.Complete(System.IntPtr userToken = {unknown})
System.dll!System.Net.HttpWebRequest.ProcessResponse()
System.dll!System.Net.HttpWebRequest.SetResponse(System.Net.CoreResponseData coreResponseData = {unknown})
System.dll!System.Net.ConnectionReturnResult.SetResponses(System.Net.ConnectionReturnResult returnResult = {unknown})
System.dll!System.Net.Connection.ReadComplete(int bytesRead = {unknown}, System.Net.WebExceptionStatus errorStatus = {unknown})
System.dll!System.Net.Connection.ReadCallback(System.IAsyncResult asyncResult = {unknown})
System.dll!System.Net.LazyAsyncResult.Complete(System.IntPtr userToken = {unknown})
System.dll!System.Net.Security._SslStream.ProcessFrameBody(int readBytes = {unknown}, byte[] buffer = {unknown}, int offset = {unknown}, int count = {unknown}, System.Net.AsyncProtocolRequest asyncRequest = {unknown})
System.dll!System.Net.Security._SslStream.ReadFrameCallback(System.Net.AsyncProtocolRequest asyncRequest = {unknown})
System.dll!System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(int bytes = {unknown})
System.dll!System.Net.FixedSizeReader.ReadCallback(System.IAsyncResult transportResult = {unknown})
System.dll!System.Net.LazyAsyncResult.Complete(System.IntPtr userToken = {unknown})
[External Code]
System.dll!System.Net.ContextAwareResult.Complete(System.IntPtr userToken = {unknown})
System.dll!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(uint errorCode = {unknown}, uint numBytes = {unknown}, System.Threading.NativeOverlapped* nativeOverlapped = {unknown})
[External Code]
EDITAR:
As exceções são realmente causadas por mim.Aqui está um exemplo:
AzureBrightWebRole.dll!AzureBright.Common.EasyPay.EasyPay.CheckFinishedPayments()
AzureBrightWorkerRole.dll!AzureBrightWorkerRole.WorkerRole.Run()
Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRoleInternal()
Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRole()
Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.AnonymousMethod()
[External Code]
Um serviço web que eu estava acessando parecia ter parado de funcionar.No final, descobri que não tinha nada a ver com isso!Reproduzi o erro localmente e estava acontecendo direto no meu código.Por que não consigo ver o código onde ocorreu o erro e em quais condições?Embora não tenha certeza, não me lembro se o código foi alterado e foi feito hoje.
Solução
O IntelliTrace só mostrará o código-fonte quando houver algum código para mostrar.
Todo o código no rastreamento de pilha que você postou está dentro da estrutura .Net, portanto, não há código-fonte para mostrar.
Você provavelmente pode obter o código-fonte aqui no Fonte de referência do .Net Framework.
Esta exceção, e muitas outras semelhantes, são internas ao ASP.Net e devem ser ignoradas.