Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Добрый день! Проблема в следущюем: Есть приложение ASP.Net, в котором есть ошибки. Периодически они возникают и хотелось бы сделать для них лог. В этом логе хотелось бы хранить помимо всего прочего, кусок кода, в котором произошла ошибка (как на страничке, которую ASP.Net сам вываливает). Вопрос: Как получить этот кусок? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:19 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
что то в этом роде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:32 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, <Аноним>, Вы писали: А>Добрый день! А>Проблема в следущюем: А>Есть приложение ASP.Net, в котором есть ошибки. А>Периодически они возникают и хотелось бы сделать для них лог. А>В этом логе хотелось бы хранить помимо всего прочего, кусок кода, в котором произошла ошибка (как на страничке, которую ASP.Net сам вываливает). А>Вопрос: Как получить этот кусок? например в global.asax завести следующий метод protected void Application_Error(object src, EventArgs e) { Exception ex=Server.GetLastError(); EventLog.WriteEntry("YouApp",ex.Message,EventLogEntryType.Error); } А>Заранее спасибо.... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:52 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, cadet354, Вы писали: C>например в global.asax завести следующий метод C> C>protected void Application_Error(object src, EventArgs e) C>{ C> Exception ex=Server.GetLastError(); C> EventLog.WriteEntry("YouApp",ex.Message,EventLogEntryType.Error); C>} C> Спасибо за ответ. Однако, как делать записи в лог — это я знаю :user: А вопрос-то был о том как получить кусок кода в котором ошибка случилась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 14:05 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, <Аноним>, Вы писали: А>Спасибо за ответ. Однако, как делать записи в лог — это я знаю :user: это хорошо :) осталось почитать про Exception (InnerException и StackTrace :) )... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 14:56 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, cadet354, Вы писали: C>Здравствуйте, <Аноним>, Вы писали: А>>Спасибо за ответ. Однако, как делать записи в лог — это я знаю :user: C>это хорошо :) C>осталось почитать про Exception (InnerException и StackTrace :) ) из StackTrace не получить _кусок_ кода... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:24 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, cadet354, Вы писали: C>Здравствуйте, <Аноним>, Вы писали: А>>Спасибо за ответ. Однако, как делать записи в лог — это я знаю :user: C>это хорошо :) C>осталось почитать про Exception (InnerException и StackTrace :) ) StackTrace и "кусок кода" — это разные вещи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 16:08 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Dronopotamus, Вы писали: D>Здравствуйте, cadet354, Вы писали: C>>Здравствуйте, <Аноним>, Вы писали: А>>>Спасибо за ответ. Однако, как делать записи в лог — это я знаю :user: C>>это хорошо :) C>>осталось почитать про Exception (InnerException и StackTrace :) ) D>из StackTrace не получить _кусок_ кода да, чего-то я погорячился, но хоть стек вызовов можно посмотреть: [Test] public void TestException() { try { __Throw(); } catch(Exception exc) { Console.WriteLine(exc.StackTrace); } } private void __Throw() { __Throw2(); } private void __Throw2() { throw new ArgumentException("mega"); } выводит at TestRealtyImage.Class2.__Throw2() in c:\projects\dnnmodules\realty\realtyimage\testrealtyimage\class2.cs:line 41 at TestRealtyImage.Class2.__Throw() in c:\projects\dnnmodules\realty\realtyimage\testrealtyimage\class2.cs:line 37 at TestRealtyImage.Class2.TestException() in c:\projects\dnnmodules\realty\realtyimage\testrealtyimage\class2.cs:line 28... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 16:26 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Не знаю подойдет ли, но есть готовое решение - http://msdn.microsoft.com/msdnmag/issues/06/08/Toolbox/, параграф Review Your Web App's Errors. ( Блог программиста ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 18:02 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
А почему вы вообще подумали, ЧТО ЭТО ВОЗМОЖНО? . У вас есть только откомпилированная библиотека. Вы, конечно, можете ЕЕ ДЕКОМПИЛИРОВАТЬ через system.Reflection, как это делает например REFLECTOR, ну тока года на написание этой проги может вам не хватить. Потом, кто сказал, что код не подвергался обфускации и полученный результат декомпиляции будет читаем? Ну это конечно речь вообще только о DebugMode - в ReleaseMode ни о каких тегах исходного текста не может быть и речи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 20:41 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Аноним, Вы писали: А>StackTrace и "кусок кода" — это разные вещи! Да ваша правда, но вот алгоритм как можно сие сделать: по stack trace вы получаете функцию где это произошло, открываете pdb файл (можно и откомпилировать релизз версию с поддержкой debug symbols), находите путь к этому файлу, открываете его и показываете нужную строчку :) Именно так делает ASP.NET, причем в pdb прописывается тот путь который на машине разработчика, сильное ограничение вы не находите? После всего этого, вам точно это надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 15:24 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
" Аноним " <0@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:2088188@news.rsdn.ru... > Добрый день! > > Проблема в следущюем: > Есть приложение ASP.Net, в котором есть ошибки. > Периодически они возникают и хотелось бы сделать для них лог. > В этом логе хотелось бы хранить помимо всего прочего, кусок кода, в > котором произошла ошибка (как на страничке, которую ASP.Net сам > вываливает). > Вопрос: Как получить этот кусок? Если именно "как на страничке, которую ASP.Net сам вываливает", то делаем Exception ex ex.ToString(); И там будет все то самое.Posted via RSDN NNTP Server 2.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 20:34 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, <Аноним>, Вы писали: А>Вопрос: Как получить этот кусок? 1. Взять у Exception TargetSite. 2. Взять у MethodBase GetMethodBody(). 3. Взять у MethodBody GetIlAsByteArray() 4. Декомпилировать полученный IL методами из Reflector или Phoenix. 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 07:50 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, alexdp, Вы писали: A>Если именно "как на страничке, которую ASP.Net сам вываливает", A>то делаем Exception ex A>ex.ToString(); A>И там будет все то самое. Не будет :crash: Проверял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:34 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, vbnet2000, Вы писали: V>А почему вы вообще подумали, ЧТО ЭТО ВОЗМОЖНО?. У вас есть только откомпилированная библиотека. Вы, конечно, можете ЕЕ ДЕКОМПИЛИРОВАТЬ через system.Reflection, как это делает например REFLECTOR, ну тока года на написание этой проги может вам не хватить. Потом, кто сказал, что код не подвергался обфускации и полученный результат декомпиляции будет читаем? V>Ну это конечно речь вообще только о DebugMode — в ReleaseMode ни о каких тегах исходного текста не может быть и речи... V> данное сообщение получено с www.gotdotnet.ru V>ссылка на оригинальное сообщение Если я вижу исходный код на странице, сообщающей об ошибке в ASP.NET — значит это возможно. Вы так не считаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:36 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, <Аноним>, Вы писали: А>Если я вижу исходный код на странице, сообщающей об ошибке в ASP.NET — значит это возможно. Вообще-то исходный код на странице ты видишь только при ошибке компилятора . Никакого отношения к рантайм-сиключениям это не имеет. А>Вы так не считаете? А вот я считаю, что нужно быть внимательным. 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 16:13 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Sinclair, Вы писали: S>Здравствуйте, <Аноним>, Вы писали: А>>Если я вижу исходный код на странице, сообщающей об ошибке в ASP.NET — значит это возможно. S>Вообще-то исходный код на странице ты видишь только при ошибке компилятора . Никакого отношения к рантайм-сиключениям это не имеет. А>>Вы так не считаете? S>А вот я считаю, что нужно быть внимательным. Уважаемый Sinclair, обратите пожалуйста Ваше драгоценное внимание на тот факт, что ошибок компиляции СБОРОК (чтобы потом не было разночтений уточню, что под сборками сдесь понимаются не временные сборки, которые генерятся движком ASP.Net в своей директории, а тех которые складываются в каталог bin) на этапе выполнения (а именно этот этап здесь обсуждается) быть не может!!! И ошибка деления на ноль так же замечательно отображается в стандартной ASP.Net страничке с указанием того места, где она произошла. Если не верите мне — проверьте. Я проверял. IMHO: И вообще прежде чем писать этот бред про ошибку компиляции — было бы неплохо убедиться в достоверности своих слов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 21:11 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, <Аноним>, Вы писали: А>И ошибка деления на ноль так же замечательно отображается в стандартной ASP.Net страничке с указанием того места, где она произошла. А>Если не верите мне — проверьте. Я проверял. Виноват, беру свои слова обратно. А>IMHO: И вообще прежде чем писать этот бред про ошибку компиляции — было бы неплохо убедиться в достоверности своих слов. Ок, постараюсь так и делать. 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 09:01 |
|
||
|
Как получить исх. код того места, где произошла ошибка
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 09:44 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33959807&tid=1389872]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 410ms |

| 0 / 0 |
