Как включить и отключить ELMAH в web.config и в коде позади?

@AndreasN корректен : спецификация JSON диктует использование кавычек для него, чтобы на самом деле быть JSON. Если Вы не используете кавычки, это может быть литерал доступного объекта в JavaScript, но это не JSON. Другие сервисы помимо стороны браузера использование JavaScript, JSON (например, веб-сервисы с помощью php, Java, и т.д.) и если Вы создаете строку, которая испытывает недостаток в кавычках, нет никакой гарантии, что это будет проанализировано правильно - хотя я подозреваю большинство реализаций, были бы достаточно устойчивы, чтобы сделать так.

к вашему сведению опасно в JavaScript непосредственно использовать оценку () на строках JSON из источников, которые Вы не можете предотвратить вредоносные атаки. Снова, посмотрите сайт JSON , который дает больше объяснения, а также очень короткий файл JavaScript, который безопасно анализирует строки JSON в объекты JavaScript.

редактирование: я предполагаю технически, что Ваш исходный вопрос не о JSON, а скорее синтаксисе JavaScript для [1 111] литералы объектов . Различие - то, что объекты, конструируемые от строки JSON, исключат много других возможных литералов объектов, например:

var a = {cat: "meow", dog: "woof"};
var aname = {cat: "Garfield", dog: "Odie"};
var b = {
  counter: 0,
  pow: function(x) { return x+1; },
  zap: function(y) { return (counter += y); }
};
var c = {
  all: [a,aname],
  animals: a,
  names: aname,
};

Литералы объектов "a" и "aname" могут быть выражены в JSON (путем добавления кавычек к именам свойства). Но литералы объектов "b" и "c" не могут. Литерал объектов "b" содержит функции (не позволенный в JSON). Литерал объектов "c" выше содержит ссылки на другие переменные способом, который не является представимым в JSON, потому что некоторые ссылки совместно используются. При внесении изменения в c.names, оно также изменится c.all[1], так как они совместно используют ссылку на ту же переменную. JSON может только выразить объекты, которые имеют древовидную структуру (например, каждый подэлемент полного объекта независим).

8
задан Bill the Lizard 20 May 2011 в 12:26
поделиться

2 ответа

Может быть, вы можете использовать ErrorFiltering , чтобы отключить регистрацию электронной почты в Global.asax. Что-то вроде:

void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e)
{

#if DEBUG
    e.Dismiss();
#endif

}
5
ответ дан 5 December 2019 в 12:59
поделиться

Предположим, у вас другой веб. config для вашей среды разработки и производства, просто отключите Elmah в своем web.config разработки. Вы захотите закомментировать (или удалить) элемент Elmah.ErrorLogModule в разделе httpModules.

8
ответ дан 5 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

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