2013-07-02 10 views
0

Один из моих веб-страниц дает мне:Как войти в 500 внутренних ошибок сервера

GET url_plus_query_string_go_here 500 (Internal Server Error) 

тип ошибки. Как установить страницу/сервер, чтобы я мог регистрировать эти ошибки, чтобы узнать больше о них и почему они происходят?

+0

Посмотрите на просмотрщик событий, чтобы узнать, что произошло. –

+0

Этот вопрос может получить лучший ответ на http://webmasters.stackexchange.com/ –

+0

@RowlandShaw: Я не согласен. Это специфично для используемого стека технологий. В этом случае ASP.NET –

ответ

1

Вы можете использовать ELMAH, чтобы легко регистрировать все исключения.

Он добавляет обработчик сообщений в ваше приложение ASP.NET, которое автоматически регистрирует ваши исключения в базе данных и предоставляет веб-интерфейс для их просмотра.

Помимо настройки базы данных и настройки вашего web.config, вам не нужно ничего менять в своем приложении. В частности, вам не нужно добавлять обработчики try catch для всех ваших контроллеров.

0

Вы можете создать класс Log.cs и использовать метод записи для регистрации исключения в текстовый файл. Теперь вызовите этот метод в своем коде (например, в блоке catch). Используйте следующий код для создания класса log.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 

namespace TestApp 
{ 
public class Log 
{ 
    protected static string GetFileName() 
    { 
     return "log.txt"; 
    } 

    public Log() 
    { 

    } 

    public static void Write(string message) 
    { 
     System.IO.File.AppendAllText(GetFullFilePath(), message + Environment.NewLine); 
    } 



    public static string ReadAll() 
    { 
     return System.IO.File.ReadAllText(GetFullFilePath()); 
    } 

    private static string GetFullFilePath() 
    { 
     return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GetFileName()); 
    } 
} 
} 

Теперь применить следующий код для вставки исключение или что-нибудь другое, что вы хотите отслеживать на время выполнения. Здесь я показываю только блок catch, но вы можете использовать его в любом месте вашего кода.

catch (Exception ex) 
     { 
      Log.Write(DateTime.Now + " " + ex.Message + " Something relevant string"); 
     } 
+0

дает мне сообщение об ошибке: 'Имя 'path' не существует в текущем контексте.'. – oshirowanen

+0

Добавить систему имен System.IO, используя System.IO –