Вчера я настроил Elmah, чтобы он отправлял мне электронное письмо каждый раз, когда выдается необработанное исключение, которое приводит к сбою моего сайта.
Этим утром я проснулся и увидел 6 электронных писем, за исключением:
«System.Web.HttpException: контроллер для пути «/none» не найден или не реализует IController».
Они были от поискового робота Bing. Было еще 2 от поисковых роботов Google и Yahoo.
Я просмотрел свой код и проверил все свои ссылки на своем веб-сайте и не нашел никаких ошибок. Нигде я не пытаюсь направить на «нет» контроллер. Две другие ошибки были похожи, но указывают на пару других контроллеров, но они работают нормально, когда я их тестирую.
Что я делаю не так и как избавиться от этих ошибок?
Я обеспокоен тем, что они будут ранжировать мой сайт ниже в поисковых системах.
Обновление:
Наконец-то я смог воспроизвести ошибки. В своем браузере я набрал: «www.mysite.com/abcde». Пользовательская страница ошибки 404 моего сайта показала, что это хорошо. Однако Elmah сгенерировал электронное письмо, в котором говорилось
"Контроллер для пути "/abcde" не найден или не реализует IController"
Когда я набрал: «www.mysite.com/Home/abcde», появилась моя пользовательская страница с ошибкой 404. Затем Эльма отправил это электронное письмо:
«Метод открытого действия abcde не найден на контроллере MySite.Controllers.HomeController».
Это приводит меня к выводу, что по какой-то причине поисковые роботы пытаются получить доступ к URL-адресам на моем сайте, которые были удалены или никогда не существовали.
Как я могу заставить elmah не регистрировать ошибки, поступающие с URL-адресов, которых нет на моем сайте? Я не хочу получать электронное письмо каждый раз, когда посетитель или поисковый робот пытается ввести несуществующий URL-адрес.
Кроме того, есть ли способ перенаправить наиболее распространенные недействительные URL-адреса поисковых роботов, такие как «/none» и «/error_log», на мою главную домашнюю страницу?