Обработка исключений в Веб-формах ASP.NET

Может ли это быть связано с тем, что ограничение всех томов составляет 7,4 ГБ?

У вас действительно есть один том /dev/vda1 и несколько точек монтирования, а не несколько томов с 7,4 ГБ

Не уверен, где вы работаете с Kubernetes, но это похоже на виртуальный том (в ВМ). Вы можете увеличить размер в конфигурации виртуальной машины или в облачном провайдере, а затем запустить его, чтобы увеличить размер файловой системы:

  • ext4:

    $ resize2fs /dev/vda1
    
  • xfs:

    $ xfs_growfs /dev/vda1
    

Другие файловые системы также будут иметь свои собственные команды.

Наиболее распространенной проблемой для нехватки дискового пространства на главной (ых) является файлы журналов, так что если это так, вы можете создать для них задание очистки или изменить настройки размера журнала.

9
задан juan 17 February 2009 в 19:13
поделиться

5 ответов

Только зафиксируйте ошибки, которые можно обработать. Если можно обработать их способом, который позволяет странице продолжать загружаться, затем делают так. Любое другое исключение, которое разрушило бы страницу, не должно быть обработано ни в каком управлении или странице, поскольку Вы не смогли бы сделать что-либо так или иначе. Позвольте ему перейти к global.asax обработчику и удостовериться, что Вы регистрируете исключение.

12
ответ дан 4 December 2019 в 11:44
поделиться

В дополнение к предложению Andrew удостоверьтесь, что обновили web.config файл, чтобы установить CustomErrors на "На" и указать универсальную ошибочную страницу для перенаправления этих высокоуровневых ошибок. Global_asax все еще зарегистрирует ошибку, и затем пользователь видит дружественную страницу. Это также позволит Вам настраивать несколько стандартных ошибок типа, таких как 404 с и 200 с, плюс намного больше.

4
ответ дан 4 December 2019 в 11:44
поделиться

Если Вы будете использовать средства управления проверкой или проверять и проверять ввод данных пользователем в Вашем коде позади этого, то будет иметь большое значение для предотвращения ошибок. Я действительно рекомендую иметь универсальную ошибочную страницу, которая может зарегистрировать ошибку для Вас. В случаях, где Вы не уверены в том, что произойдет, я предлагаю фиксировать ошибку и обработать ее, если вообще возможный и работа над нахождением способа знать, что то, что Вы собираетесь выполнить, будет работать прежде, чем сделать ее.

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

0
ответ дан 4 December 2019 в 11:44
поделиться

Необходимо использовать попытку/выгоду в местах, где можно сделать что-то значимое с ошибкой, как фиксация ее или проявление другого подхода.

Для всех других случаев необходимо использовать глобальную попытку/выгоду с помощью web.config пользовательскую ошибочную страницу или событие Application_Error, чтобы зарегистрировать ошибку и возможно показать его пользователю.

0
ответ дан 4 December 2019 в 11:44
поделиться
  • Веб-приложение обычно состоит из пользовательского интерфейса, уровня доступа к бизнесу и данным. Каждый уровень должен выполнять свою часть работы по обработке исключений. Каждый уровень должен (для повторного использования кода) проверять состояние ошибки и переносить исключение (после регистрации) и, возможно, распространяться на вызывающий уровень. Слой пользовательского интерфейса должен скрывать исключение и отображать дружественное сообщение. Поймать все исключения в пользовательском интерфейсе, возможно, не очень хорошая идея. Если возможно, исключения следует регистрировать в Базе данных. Это позволит упростить обслуживание и исправление ошибок

  • По возможности избегайте перехвата исключений. Попробуйте проверить все входные данные перед их использованием. Необходима тщательная проверка входных данных (как на стороне клиента, так и на стороне сервера) с помощью элементов управления проверкой, настраиваемых элементов управления и регулярных выражений.

     строка fname = "abc";
    // Всегда проверяйте условие, например, файл существует и т. Д.
    если (System.IO.File.Exists (имя_файла))
    {
    
    }
    еще
    {
    
    }
    
  • Всегда проверяйте, вызывается ли код очистки. Используя заявление или попробуйте, наконец.

  • Вы можете перехватить все исключения в Global.asax (файл приложения asp.net)

     void Application_Error (отправитель объекта, EventArgs e)
    { 
     // Код, который запускается при возникновении необработанной ошибки
     Исключение objErr = Server.GetLastError (). GetBaseException ();
     string err = "Ошибка в событии Application_Error \ n" +
     «Ошибка в:» + Request.Url.ToString () +
     "\ nСообщение об ошибке:" + objErr.Message.ToString () + 
     "\ nStack Trace:" + objErr.StackTrace.ToString ();
     EventLog.WriteEntry ("Sample_WebApp", ошибка, EventLogEntryType.Error);
     Server.ClearError ();
     // дополнительные действия ...
    
    }
    

и добавьте раздел в свою веб-конфигурацию, чтобы перенаправить пользователя на отдельную страницу

    <customErrors defaultRedirect="error.htm" mode="On">
    </customErrors>
2
ответ дан 4 December 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: