Решение «Failed to load resource: the server responded with a status of 439 (Daily quota exceeded)» для ASP.NET Core приложения в Azure

  • Evgenia 

Сегодня одно мое ASP.NET Core приложение, опубликованное в Microsoft Azure, стало выдавать в браузере неожиданную ошибку: Failed to load resource: the server responded with a status of 439 (Daily quota exceeded). Поиск решения в Интернете по тексту ошибки к положительным результатам не привел. Если вы столкнулись с подобной проблемой, читайте дальше…

Решение 1. Отключение опции «Диагностика на уровне кода» в Application Insights

Причиной проблемы оказалась служба Application Insights, которая недавно была подключена для выполнения ping-тестов к этому приложению, но в самом коде никак не использовалась. Внимательнее изучив настройки Application Insights, я нашла опцию «Code level diagnostics» (Диагностика на уровне кода), отключение которой привело к исчезновению ошибки из лога браузера:

Когда эта опция включена, на страницы вашего сайта в конец тега head автоматически добавляется следующий javascript-код:

    <script type="text/javascript">
        var appInsights=window.appInsights||function(config){
            function i(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},u=document,e=window,o="script",s="AuthenticatedUserContext",h="start",c="stop",l="Track",a=l+"Event",v=l+"Page",y=u.createElement(o),r,f;y.src=config.url||"https://az416426.vo.msecnd.net/scripts/a/ai.0.js";u.getElementsByTagName(o)[0].parentNode.appendChild(y);try{t.cookie=u.cookie}catch(p){}for(t.queue=[],t.version="1.0",r=["Event","Exception","Metric","PageView","Trace","Dependency"];r.length;)i("track"+r.pop());return i("set"+s),i("clear"+s),i(h+a),i(c+a),i(h+v),i(c+v),i("flush"),config.disableExceptionTracking||(r="onerror",i("_"+r),f=e[r],e[r]=function(config,i,u,e,o){var s=f&&f(config,i,u,e,o);return s!==!0&&t["_"+r](config,i,u,e,o),s}),t
        }({
            instrumentationKey: '<your_key_will_be_here>'
        });

        window.appInsights=appInsights;
        appInsights.trackPageView();

   

Из-за этого при загрузке ваших страниц выполняются два дополнительных запроса OPTIONS и POST по адресу https://dc.services.visualstudio.com/v2/track

Решение 2. Увеличение ежедневной квоты

Оказалось, что когда ресурс Application Insights создается из Visual Studio (что очевидно и было сделано в данном случае), ежедневная квота устанавливается маленькой (всего 32,3 МБ в день). Но вы можете увеличить ее в разделе «Usage and estimated costs»(Данные об использовании и предполагаемые расходы) Application Insights в Azure. После нажатия на ссылку «Daily cap» (Ежедневное ограничение) вам станут доступны следующие настройки:

Максимальное ограничение составляет 1000 ГБ в день. Дополнительную информацию по квотам Application Insights вы сможете найти по этой ссылке.

Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *