Профилирование веб-сайтов ASP.NET с Профилировщиком EQATEC

Неустранимая ошибка: вызов неопределенной функции XXX

Случается, когда вы пытаетесь вызвать функцию, которая еще не определена. Общие причины включают отсутствующие расширения и включают в себя объявление условной функции, функцию в объявлении функции или простые опечатки.

Пример 1 - Декларация условной функции

$someCondition = false;
if ($someCondition === true) {
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn() никогда не будет объявлено, потому что $someCondition не соответствует действительности.

Пример 2 - Функция в объявлении функции

function createFn() 
{
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn будет объявлен только после вызова createFn(). Обратите внимание, что последующие вызовы createFn() вызовут ошибку об обновлении существующей функции.

Вы также можете увидеть это для встроенной функции PHP. Попробуйте найти функцию в официальном руководстве и проверьте, к какому «расширению» (к нему принадлежит PHP-модуль), и какие версии PHP поддерживают его.

В случае отсутствующее расширение, установите это расширение и включите его в php.ini. Обратитесь к Инструкции по установке в Руководстве по PHP для расширения вашей функции. Возможно, вы также сможете включить или установить расширение с помощью диспетчера пакетов (например, apt в Debian или Ubuntu, yum в Red Hat или CentOS ) или панель управления в среде общедоступного хостинга.

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

В случае отсутствия включено, обязательно включите файл, объявляющий функцию перед вызовом функции.

В случае опечаток исправить опечатку.

Вопросы, относящиеся

79
задан mcintyre321 28 October 2011 в 19:04
поделиться

4 ответа

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

Чтобы профилировать ASP.NET приложение с помощью EQATEC, просто выберите папку bin приложения в настройках App Path:

App Path http://img191.imageshack.us/img191/9776/eqatecstep1.png

Затем нажмите кнопку Build в нижней части формы:

Build Button http://img339.imageshack.us/img339/6487/eqatecstep2.png

Затем загрузите приложение и перейдите на страницу, которую вы хотите профилировать. Перейдите на вкладку Run и нажмите кнопку Reset Counters:

Reset Counters http://img192.imageshack.us/img192/8250/eqatecstep3.png

Затем выполните действие, которое вы хотите профилировать. После этого нажмите кнопку Take Snapshot:

Take Snapshot http://img706.imageshack.us/img706/9778/eqatecstep4.png

После этого в нижнем списке появится отчет о снимке. Вы можете дважды щелкнуть на нем для просмотра:

View Report http://img263.imageshack.us/img263/4561/eqatecstep5.png

64
ответ дан 24 November 2019 в 10:17
поделиться

Это должно работать для веб-проектов ASP.NET:

  1. Скомпилируйте проект.
  2. Запустите веб-приложение. Вы можете щелкнуть правой кнопкой мыши какой-либо файл .aspx в Visual Studio и выбрать «Просмотреть в браузере». (Если вы запустите приложение позже, вы рискуете перезаписать профилированную DLL.)
  3. Запустите EQATEC Profiler.
  4. На вкладке «Сборка» перейдите к папке bin вашего проекта.
  5. Нажмите кнопку «Параметры приложения».
    • Задайте для выходной папки только значение $ (AppDir).
    • Снимите флажок «Обычное приложение».
  6. Нажмите кнопку «Создать».
  7. Переключитесь на свой любимый браузер. Перейдите на страницу, которую хотите профилировать. Вы должны получить запись «Профилированное приложение запущено» на вкладке «Выполнить» в EQATEC Profiler.
  8. Нажмите кнопку «Сделать снимок». Новая запись должна появиться в списке «Просмотр отчетов о снимках». Выберите его и нажмите кнопку «Просмотр».

Изменить: инструкции обновлены в соответствии с комментарием.

44
ответ дан 24 November 2019 в 10:17
поделиться

Возможно, вам понадобится скомпилированная версия вашего сайта (есть ли dll для сайта в папке bin или просто зависимости?) . Самый простой способ сделать это - опубликовать. (Просто щелкните правой кнопкой мыши сайт в Visual Studio). Тогда ответ Павла подойдет.

1
ответ дан 24 November 2019 в 10:17
поделиться
Другие вопросы по тегам:

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