Почему IntelliTrace не показывает код?
Я отлаживаю приложение на сервере Azure, используя IntelliTrace. Иногда я вижу код, который создал исключение, но иногда я не могу. И исключения, соответствующие коды которых я не вижу, всегда одинаковы.
Есть ли какая-то причина, почему я продолжаю получать одно и то же сообщение (источник недоступен) на новой вкладке, когда дважды щелкаю исключение, чтобы начать его отладку?
Я уже знаю, что такое исключение, что мне нужно сделать, чтобы решить его, но мне также нужно знать, где найти код! Помогите.
пример
@SLaks
Вот пример исключений, которые я получаю:
"The condition specified using HTTP conditional header(s) is not met."
Стек вызовов:
[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]
РЕДАКТИРОВАТЬ:
Исключения на самом деле вызваны мной. Вот пример:
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]
Похоже, что веб-служба, к которой я обращался, перестала работать. В конце концов я выяснил, что это не имеет к этому никакого отношения! Я воспроизвел ошибку локально, и это происходило прямо в моем коде. Почему я не вижу код, где произошла ошибка и в каких условиях? Хотя я не могу быть уверен, я не помню, чтобы код был изменен, и это было сделано сегодня.
1 ответ
IntelliTrace будет показывать исходный код только тогда, когда есть какой-либо код для отображения.
Весь код в трассировке стека, который вы разместили, находится внутри.Net framework, поэтому нет никакого исходного кода, который бы вам показывал.
Вы, вероятно, можете получить исходный код здесь. Ссылочный источник.Net Framework.
Это и многие другие подобные исключения являются внутренними для ASP.Net и должны игнорироваться.