Просмотр стека вызовов
-
Во время приостановки в цикле щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области.
Если оно закрыто, откройте его во время приостановки в отладчике, выбрав Отладка > Окна > Стек вызовов.
-
Несколько раз нажмите клавишу F11, пока отладчик не приостановится в методе . Взгляните на окно Стек вызовов.
В окне Стек вызовов показан порядок вызова методов и функций. В верхней строке приведена текущая функция (в данном приложении метод ). Во второй строке показано, что функция была вызвана из метода и т. д.
Observação
Окно Стек вызовов аналогично перспективе «Отладка» в некоторых интегрированных средах разработки, например Eclipse.
Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения.
Дважды щелкните строку кода, чтобы просмотреть исходный код. При этом также изменится текущая область, проверяемая отладчиком. Это действие не перемещает отладчик.
Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. Например, можно вставлять точки останова в указанные функции, перемещать отладчик с помощью функции Выполнение до текущей позиции и изучать исходный код. Дополнительные сведения см. в разделе Практическое руководство. просмотреть стек вызовов.
Стек вызовов может помочь разобраться в потоке выполнения приложения, показывая порядок, в котором вызываются методы и функции.
-
Пока отладчик приостановлен в цикле , просмотрите окно Стек вызовов, которое по умолчанию открывается в нижней правой области редактора кода.
Если окно Стек вызовов закрыто, нажмите сочетание клавиш Ctrl+D, A или в строке меню выберите Отладка >Windows >Стек вызовов.
В окне Стек вызовов вы увидите желтый указатель в текущем методе .
-
Несколько раз нажмите клавишу F11, пока отладчик не приостановится в методе .
В верхней строке окна Стек вызовов показана текущая функция – метод . Во второй строке показано, что метод был вызван из метода .
Observação
Окно Стек вызовов аналогично перспективе «Отладка» в некоторых наборах IDE, например Eclipse.
В окне Стек вызовов дважды щелкните строку кода, чтобы перейти к этому исходному коду. При этом изменится текущая область, проверяемая отладчиком. Это действие не перемещает отладчик.
Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. Например, можно вставить точки останова в указанные функции, переместить отладчик с помощью функции Выполнение до текущей позиции или перейти к исходному коду.
Дополнительные сведения о Стеке вызовов см. на этой странице.
Предупреждения точек останова
При отладке точка останова может иметь два визуальных состояния: закрашенный красный кружок или незакрашенный кружок (белая заливка). Если отладчик может успешно установить точку останова в целевом процессе, она будет отображаться как закрашенный красный кружок. Если точка останова отображается как незакрашенный кружок, либо точка останова отключена, либо при попытке установить ее возникло предупреждение. Чтобы определить причину, наведите указатель мыши на точку останова и проверьте, есть ли предупреждение.
В следующих двух разделах описаны наиболее часто возникающие предупреждения и способы их устранения.
«Нет загруженных символов для этого документа»
Перейдите в окно Модули (Отладка > Окна > Модули) и проверьте, загружен ли модуль.
-
Если модуль загружен, проверьте, загружены ли символы, в столбце Состояние символов.
- Если символы не загружены, проверьте состояние символов для диагностики проблемы. В контекстном меню модуля в окне Модули щелкните Сведения о загрузке символов… , чтобы узнать, откуда отладчик пытался загрузить символы. Дополнительные сведения о загрузке символов см. в статье Указание файлов символов (.pdb) и исходных файлов.
- Если символы загружены, PDB-файл не содержит сведений об исходных файлах. Возможно несколько причин.
- Если исходные файлы были добавлены недавно, убедитесь в том, что загружается последняя версия модуля.
- Можно создать очищенные PDB-файлы с помощью параметра компоновщика /PDBSTRIPPED. Очищенные PDB-файлы не содержат сведений об исходных файлах. Убедитесь в том, что вы работаете с полным, а не очищенным PDB-файлом.
- PDB-файл частично поврежден. Удалите файл и выполните чистую сборку модуля, чтобы попытаться устранить проблему.
-
Если модуль не загружен, проверьте следующее, чтобы найти причину:
- Убедитесь в том, что выполняется отладка правильного процесса.
- Проверьте, выполняется ли отладка соответствующего кода. Узнать, для отладки какого типа кода настроен отладчик, можно в окне Процессы (Отладка > Окна > Процессы). Например, если вы пытаетесь выполнить отладку кода на C#, убедитесь в том, что ваш отладчик настроен для соответствующего типа и версии .NET (например, «Управляемый код (версия 4*)» «Управляемый код (версия 2* или версия 3*)» или «Управляемый код (CoreCLR)»).
«… текущий исходный код отличается от версии, построенной в…»
Если исходный файл изменился и исходный код больше не соответствует отлаживаемому коду, отладчик по умолчанию не будет устанавливать точки останова в коде. Как правило, эта проблема возникает, если исходный файл изменился, но исходный код не был перестроен. Чтобы устранить эту проблему, перестройте проект. Если система сборки считает, что проект уже обновлен, несмотря на то, что это не так, можно заставить ее перестроить проект, сохранив исходный файл еще раз или очистив выходные данные сборки проекта перед сборкой.
В редких случаях может потребоваться отладка без соответствующего исходного кода. Отладка без соответствующего исходного кода может привести к путанице при отладке, поэтому вы должны быть уверены, что именно это нужно сделать.
Чтобы отключить проверки безопасности, выполните одно из указанных ниже действий.
- Чтобы изменить отдельную точку останова, наведите указатель мыши на значок точки останова в редакторе и щелкните значок параметров (в виде шестеренки). В редактор добавится окно просмотра. В верхней части окна просмотра есть гиперссылка, указывающая на расположение точки останова. Щелкните гиперссылку, чтобы разрешить изменение расположения точки останова, и установите флажок Разрешить наличие отличий в исходном коде от первоначальной версии.
- Чтобы изменить этот параметр для всех точек останова, выберите Отладка > Параметры и настройки. На странице Отладка / Общие снимите флажок Требовать точного соответствия исходной версии файлов . Не забудьте снова включить этот параметр после завершения отладки.
Создание файлов символов (PDB) для сборки (C#, C++, Visual Basic, F#)
Можно выбрать создание файлов символов (PDB) и отладочные данные, которые необходимо включить. Для большинства типов проектов компилятор создает файлы символов по умолчанию для отладочных и окончательных сборок, в то время как другие параметры по умолчанию отличаются по типу проекта и версии Visual Studio.
Importante
Отладчик загружает PDB-файл для исполняемого файла, только если он точно соответствует PDB-файлу, который был создан при сборке исполняемого файла (то есть это должен быть либо оригинальный PDB-файл, либо его копия). Дополнительные сведения см. в статье Почему Visual Studio требует, чтобы файлы символов отладчика точно соответствовали двоичным файлам, с которыми они были собраны?
Каждый тип проекта может иметь свой способ установки этих параметров.
Создание файлов символов для проекта C#, ASP.NET или Visual Basic
Дополнительные сведения о параметрах проекта для конфигурации отладки C# и Visual Basic см. в статьях Параметры проектов для конфигураций отладки C# и Параметры проекта для конфигурации отладки Visual Basic.
-
Выберите проект в Обозревателе решений.
-
Выберите значок Свойства (или нажмите клавишу ALT+ВВОД).
-
В боковой области выберите Сборка (или Компилировать в Visual Basic).
-
В списке Конфигурация выберите Отладка или Выпуск.
-
Нажмите кнопку Дополнительно (или Дополнительные параметры компиляции в Visual Basic).
-
В списке Сведения об отладке (или Создать сведения об отладке в Visual Basic) выберите Полные, Только для PDB или Переносимые.
Переносимый формат разработан относительно недавно для кроссплатформенных приложений .NET Core. Дополнительные сведения о параметрах см. в статье Диалоговое окно «Дополнительные параметры сборки» (C#).
-
Построить проект.
Компилятор создает файлы символов в той же папке, что и исполняемый файл или основной выходной файл.
Создание файлов символов для проекта C++
-
Выберите проект в Обозревателе решений.
-
Выберите значок Свойства (или нажмите клавишу ALT+ВВОД).
-
В списке Конфигурация выберите Отладка или Выпуск.
-
В боковой области выберите Компоновщик > Отладка, а затем выберите параметры в разделе Создать сведения об отладке.
Дополнительные сведения о параметрах проекта для конфигурации отладки C++ см. в разделе Параметры проекта для конфигурации отладки C++.
-
Настройте параметры для раздела Создание файлов базы данных программы.
В большинстве проектов C++ значением по умолчанию является , которое создает PDB-файлы в выходной папке.
-
Построить проект.
Компилятор создает файлы символов в той же папке, что и исполняемый файл или основной выходной файл.
Описание проблемы
Как я и писал выше в операционной системе Windows 8.1, по какой-то причине у меня не смонтировался рабочий ISO образ, где выдал сообщение:
К сожалению при подключении файла возникла проблема
так же вы можете встретить еще одну разновидность данной проблемы в виде ошибки:
Убедитесь, что файл находится на томе NTFS, при этом папка или том не должна быть сжатыми
В логах Windows я не обнаружил ни одного события связанного с этими проблемами. И так первым делом необходимо посмотреть в свойствах файла его атрибуты, на вкладке «Общие». Убедитесь, что у вас не стоит галка «Только для чтения» и «Этот файл получен с другого компьютера, и, возможно, был заблокирован с целью защиты компьютера» нажмите разблокировать и применить.
Должно получиться вот так. Пробуем смонтировать диск, если ошибка возобновилась, то пробуем дальше вот такие действия.
С вероятностью 90%, вся проблема в атрибуте SPARE или как его еще называют sparse files (Разреженные файлы) в NTFS. Разреженные файлы — это когда файлы занимают на диске меньше пространства, чем в их свойствах отображается размер, по сути это для их экономии. Принцип очень простой, в файле есть области, занятые одними нулями (0x00). Приложение, читающее разреженный файл, дойдя до области с нулями, прочитает нули, но реального чтения с диска не произойдёт. Разреженность поможет сэкономить дисковое пространство только в таких файлах, в которых есть действительно большие пустые области.
В моем примере есть ISO образ объемом 3,1 ГБ, предположим, что в нем есть много нулей. Если они есть, то файл обычно оптимизируют, разбивая его не маленькие блоки, которые в последствии анализируются. Если хотя бы один байт внутри такого блока имеет отличное от 0x00 значение, блок записывается на диск как содержащий реальные данные. Блоки же, содержащие только байты 0x00, считаются пустыми и на диск не записываются. Таким образом файл получается меньшим по размеру, чем он есть на самом деле, однако сжатие при этом не используется.
Файловая система NTFS при попытке считать данный файл, знает его длину и количество блоков отданные под данные, а вот блоки с нулями будут генерится на лету, восстанавливая таким образом его изначальную структуру. Но как мы знаем операционная система Windows не идеальна и ее утилита отвечающая за монтирование ISO образов, может некорректно отработать с файлами, где есть атрибут sparse. Данный атрибут очень часто выставляют различные торрент-приложения, чтобы повысить производительность.
Чтобы удостовериться, что на файле стоит атрибут SPARE, откройте командную строку от имени администратора. и выполните команду:
fsutil sparse setflag путь до файла, например:
fsutil sparse setflag E:\Write\Games\Civilization IV.iso (Если выскочит ошибка Использование: fsutil sparse setflag <имя_файла> . Пример: fsutil sparse setflag C:\Temp\test.txt, то введите путь с кавычками, так как в нем есть пробелы)
C:\Users\sem>fsutil sparse setflag «E:\Write\Games\Civilization IV.iso»
Увидите надпись, что у этого файла установлен атрибут «Разреженный», если надписи не будет, то это не означает, что атрибута нет, продолжаем его снимать.
Далее убираем атрибут SPARE, выполните команду:
fsutil sparse setflag «E:\Write\Games\Civilization IV.iso» 0
После этих действий пробуем смонтировать ISO Образ, как видим, все работает.
Удаленный сервер вернул ошибку
Проверьте, не содержит ли файл журнала IIS подкоды ошибок и дополнительные сведения, и изучите эту запись блога IIS 7.
Некоторые распространенные коды ошибок и рекомендации также приводятся ниже.
- (403) Запрещено. Эта ошибка может возникать по разным причинам, поэтому проверьте файл журнала и параметры безопасности IIS для веб-сайта. Убедитесь, что элемент compilation в файле web.config сервера имеет значение . Убедитесь, что папка веб-приложения имеет необходимые разрешения, а конфигурация пула приложений верна (возможно, изменился пароль). См. раздел . Если эти параметры верны и отладка выполняется локально, также убедитесь, что вы подключаетесь к серверу правильного типа и по верному URL-адресу (см. Свойства > Веб > Серверы или Свойства > Отладка в зависимости от типа проекта).
- (503) Сервер недоступен. Возможно, пул приложений остановился из-за ошибки или изменения конфигурации. Перезапустите пул приложений.
- (404) Не найдено. Убедитесь, что для пула приложений задана верная версия ASP.NET.
Конфигурации решения
Конфигурация решения указывает, как следует создавать и развертывать проекты в решении. Чтобы изменить конфигурацию решения или определить новую конфигурацию в Configuration Manager, в меню Активная конфигурация решения щелкните Изменить или Создать.
Каждая запись в поле Контексты проекта в конфигурации решений представляет проект в решении. Для каждой комбинации Активная конфигурация решения и Активная платформа решения можно задать способ использования каждого проекта. (Дополнительные сведения о платформах решений см. в разделе Общие сведения о сборках платформ.)
При определении новой конфигурации решения и установке флажка Создать новые конфигурации проектовVisual Studio автоматически назначает новую конфигурацию всем проектам. Аналогичным образом, при определении новой платформы решения и установке флажка Создать новые платформы проектовVisual Studio автоматически назначает новую платформу всем проектам. Кроме того, если вы добавите проект, предназначенный для новой платформы, Visual Studio добавит эту платформу в список платформ решений и назначит ее всем проектам. Вы по-прежнему можете изменять параметры для каждого проекта.
Активная конфигурация решения также предоставляет контекст для IDE. Например, если вы работаете над проектом и конфигурация указывает, что он будет создан для мобильного устройства, на панели инструментов отобразятся только элементы, которые можно использовать в проекте мобильного устройства.
Вероятно, монитор удаленной отладки Microsoft Visual Studio (msvsmon.exe) не запущен на удаленном компьютере
- Если отладка выполняется на удаленном компьютере, убедитесь, что у вас установлен и выполняется удаленный отладчик. Если в сообщении упоминается брандмауэр, убедитесь, что соответствующие порты в брандмауэре открыты, особенно если используется сторонний брандмауэр.
- Если вы используете файл HOSTS, убедитесь, что он настроен правильно. Например, если отладка запускается нажатием клавиши F5 (а не с помощью команды Присоединиться к процессу), в файле HOSTS должен быть указан тот же URL-адрес проекта, что и в свойствах проекта (Свойства > Веб > Серверы или Свойства > Отладка в зависимости от типа проекта).
Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере
Полное сообщение об ошибке.
Эта ошибка возникает при попытке выполнить сборку проекта, содержащего ссылки на один или несколько пакетов NuGet, которые сейчас не установлены на компьютере или в проекте.
- При использовании формата управления PackageReference эта ошибка может быть следствием миграции packages.config в PackageReference, и это необходимо из файла проекта.
- При использовании packages.configошибка означает, что пакет не установлен в папке в корне решения.
Обычно такая ситуация возникает при получении исходного кода проекта из системы управления версиями или другого скачанного файла. Пакеты обычно исключаются из системы управления версиями или скачиваемых файлов, так как их можно восстановить из веб-каналов пакета, например nuget.org (см. раздел Пакеты и система управления версиями). Их включение приведет к раздуванию репозитория или созданию слишком больших ZIP-файлов.
Эта ошибка также может возникнуть, если файл проекта содержит абсолютные пути для расположений пакетов и вы перемещаете этот проект.
Для восстановления пакетов используйте один из следующих методов.
- После перемещения файла проекта отредактируйте его напрямую, чтобы обновить ссылки на пакеты.
- ( или )
После восстановления пакет должен присутствовать в папке global-packages. В проектах, использующих формат PackageReference, в процессе восстановления повторно создается файл , а в проектах, использующих файл , пакет должен появиться в папке . Теперь сборка проекта должна пройти без ошибок. В противном случае сообщите о проблеме на GitHub, чтобы мы могли связаться с вами.
Работа с файлами конфигурации приложения
Файлы конфигурации приложения содержат настройки, относящиеся к отдельному приложению. Например, приложение ASP.NET может иметь один или несколько файлов web.config, а приложение Windows — дополнительный файл app.config. В файлах конфигурации присутствуют общие элементы, хотя имя и расположение любого файла конфигурации в значительной степени зависят от того, где размещается приложение.
Раздел connectionStrings
Строки подключения могут храниться в виде пар «ключ/значение» в разделе connectionStrings элемента configuration файла конфигурации приложения. Дочерние элементы включают add, clear и remove.
Следующий фрагмент файла конфигурации демонстрирует схему и синтаксис хранения строки соединения. Атрибут name является именем, которое задано для уникальной идентификации строки подключения, чтобы ее можно было получить во время выполнения. Атрибут providerName является неизменяемым именем поставщика данных .NET Framework, которое регистрируется в файле machine.config.
Примечание
Можно сохранить часть строки соединения в файле конфигурации и для ее дополнения во время выполнения использовать класс DbConnectionStringBuilder. Это удобно в сценариях, в которых заранее неизвестны элементы строки соединения или желательно не сохранять конфиденциальные данные в файле конфигурации. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).
Использование внешних файлов конфигурации
Внешние файлы конфигурации представляют собой отдельные файлы, каждый из которых содержит фрагмент файла конфигурации, состоящий из одного раздела. В таком случае основной файл конфигурации ссылается на внешний файл конфигурации. Хранение раздела connectionStrings в физически отдельном файле становится удобным в ситуациях, когда может потребоваться внесение изменений в строки подключения после развертывания приложения. Например, в ASP.NET по умолчанию после изменения файлов конфигурации осуществляется перезапуск домена приложения, что приводит к потере сведений о состоянии. Но изменение внешнего файла конфигурации не вызывает перезапуск приложения. Возможность применения внешних файлов конфигурации не ограничивается ASP.NET; их можно также использовать в приложениях Windows. Кроме того, для ограничения доступа к внешним файлам конфигурации могут использоваться средства обеспечения безопасности доступа к файлам и разрешения. Работа с внешними файлами конфигурации во время выполнения осуществляется в прозрачном режиме и не требует разработки специального кода.
Для хранения строк подключения во внешнем файле конфигурации создайте отдельный файл, содержащий единственный раздел connectionStrings. Не следует включать какие-либо дополнительные элементы, разделы или атрибуты. В данном примере показан синтаксис внешнего файла конфигурации.
В основном файле конфигурации приложения для указания полного имени и расположения внешнего файла используется атрибут configSource. В следующем примере применяется ссылка на внешний файл конфигурации с именем .
Дополнительные действия по устранению неполадок
-
Откройте страницу localhost в браузере на сервере.
Если службы IIS не установлены правильно, должны отобразиться ошибки при вводе в браузере.
Дополнительные сведения о развертывании в IIS см. в разделах IIS 8.0 — использование ASP.NET 3.5 и ASP.NET 4.5 и Размещение в Windows с помощью IIS (для ASP.NET Core).
-
Создайте простое приложения ASP.NET на сервере (или используйте базовый файл web.config).
Если добиться работы приложения с отладчиком не удается, попробуйте создать простое локальное приложение ASP.NET на сервере и выполнить отладку этого простого приложения. (Можно использовать шаблон MVC ASP.NET по умолчанию.) Если отладка простого приложения выполняется, это поможет вам найти различия между двумя конфигурациями. Ищите разницу в параметрах в файле web.config, например в правилах переопределения URL-адресов.
Другие потенциальные условия
-
Могут возникнуть ошибки сборки, связанные с отсутствием файлов и указывающие, что для их скачивания следует использовать NuGet restore. Однако выполнение восстановления может сказать: «все пакеты уже установлены и нет никаких восстановлений». В этом случае удалите папку (при использовании ) или файл (при использовании PackageReference) и снова запустите инструкцию RESTORE. Если ошибка продолжает возникать, используйте или из командной строки, чтобы очистить папки и Cache, как описано в разделе .
-
При получении проекта из системы управления версиями папки вашего проекта могут быть сделаны доступными только для чтения. Измените разрешения для папок и попробуйте восстановить пакеты еще раз.
-
Возможно, вы используете старую версию NuGet. Ознакомьтесь с последними рекомендуемыми версиями на странице nuget.org/downloads. Для Visual Studio 2015 рекомендуется версия 3.6.0.
При возникновении других проблем сообщите о них на GitHub, чтобы мы могли получить у вас дополнительные сведения.
Ошибки среднего уровня доверия
Возможная причина и решение
Многие сторонние поставщики услуг размещения запускают веб-сайт со средним уровнем доверия, что означает, что это не разрешено. Например, код приложения не может получить доступ к реестру Windows и не может читать или записывать файлы, находящиеся за пределами иерархии папок приложения. По умолчанию приложение выполняется в режиме полного доверия на локальном компьютере, что означает, что приложение может выполнять те действия, которые могут завершиться ошибкой при развертывании в рабочей среде.
Чтобы устранить неполадки, можно настроить приложение для выполнения в среднем уровне доверия в локальной среде IIS. Для этого откройте файл Web. config приложения и добавьте элемент Trust в элемент System. Web , как показано в этом примере.
Теперь приложение будет работать в службах IIS со средним уровнем доверия даже на локальном компьютере.
Не следует делать этого, если развертывание выполняется в службе приложений Azure, так как Azure не требует среднего уровня доверия. На момент написания этого руководства в феврале 2012 с помощью этого метода, чтобы приложение выполнялось в среднем доверии, приведет к ошибке в Azure.
Если вы используете Entity Framework Code First Migrations и развертываете поставщик услуг размещения, который запускает приложение со средним уровнем доверия, убедитесь, что установлена версия 5,0 или более поздняя. В Entity Framework версии 4,3 для обновления схемы базы данных миграции требуется полное доверие.
1 ответ
У вас есть подозрительная платформа — x86, измените ее на Win32.
UPD: поэтому проблема связана не с проектом, а с установкой Visual Studio — попробуйте восстановить/переустановить его.
21 дек. 2017, в 14:01
Поделиться
Ещё вопросы
- 1Как добавить кнопку поворота на Android Crop Screen?
- 2C # Вопросы, касающиеся DataGridView-сортировки
- Как обновить селекторы с разными идентификаторами одновременно?
- Попытка понять рутину JQuery
- 1Java: Как быстро извлечь совпадающие строки из большого текстового файла?
- кнопки в интерактивном Div в JQuery
- 1Неограниченный универсальный массив шаблонов от поставщика в enum
- 1Динамическое добавление библиотек в банке к вашему пути к классам
- 1Разница между .equals и == в Java (в памяти)
- 1Оценка модели тензорного потока с Opencv не удалась
- Аномалия вставки с отношением многие-к-одному
- 1Добавить новый раздел в prestashop с дружественным URL
- Нужна помощь в объединении двух таблиц SQL, когда одна содержит идентификаторы, а вторая содержит имена, связанные с этим идентификатором
- 1Spring Batch с настройкой Java
- WinRT Создать файл по индивидуальному пути
- 1Чтение свойств файла XML из URL
- 1JavaScript — карта, фильтр, уменьшить. Преобразование из массивов в более глубокие деревья
- 1Параллельное изменениеException
- 2IIS / .Net допускает только один одновременный ответ на данный пользовательский сеанс
- Сокращение ng-attr-data-toggle: ничего не отображать для false
- Могу ли я выбрать строку, где нет в RIGHT JOIN или JOIN?
- 1Суммирование кортежей кортежей и вложенных диктов
- 1Пакет FOSRest удаляет трейлинг с на маршрутах
- 1Как установить информацию DPI в оттенках серого?
- Как добавить несколько условий в форму ng-submit или в текстовое поле ng-enter
- 1Как объединить наборы результатов из пакетных запросов?
- Как перебрать теги привязки в переменной с помощью Jquery
- 1Существуют ли какие-либо дополнительные опасности при загрузке изображения, удаленно противоположного загрузке из браузера?
- 1Можно ли реализовать \ Countable в классе PHP, который не предназначен для повторения?
- 2Текстовое поле отключено с огромной строкой
- Как я могу сделать отображение даты и времени, игнорируя локаль клиента?
- Трудности вставки элемента var с помощью insertAfter
- 1MQJE001: код завершения ‘2’, причина ‘2495
- 1Android — Создайте массив отрисовок из БД
- 1Внедрить куки с помощью iframe на нескольких сайтах
- 1PHP: добавить несколько записей в массив
- 1php -> shell_exec () -> psexec -> моя цепочка исполняемых файлов перестала работать
- 2модульный тест для использования реальных классов, а не копий классов
- 1Ошибка преобразования / преобразования в массив строк
- int Строковое представление фиксированной длины
- получить значение группы мобильных флажков Jquery в php-коде
- 1Библиотека чтения файлов, выводящая null
- Та же позиция и анимация динамически генерируемых изображений
- Что такое -moz-padding-start и html.css? Не могу избавиться от этой обивки
- 1Поддерживается ли Laravel5 в среде общего хостинга?
- 1Получение Call значение равно нулю
- jquery datatable не возвращает информацию
- 1Как прочитать файл и добавить в массив на основе определенного диапазона ввода
- 2MeasureString () дает разный размер для разных разрешений экрана
- 1Почему Python в Windows не может прочитать изображение в двоичном режиме?
Ошибка конфигурации — атрибут targetFramework ссылается на версию, которая позже установленной версии .NET Framework
Сценарий
Вы успешно опубликовали веб-проект, предназначенный для ASP.NET 4,5, но при запуске приложения (в режиме customErrors с параметром «OFF» в файле Web. config) возникает следующая ошибка:
Атрибут «targetFramework» в элементе> компиляции <файла Web. config используется только для целевой версии 4,0 и более поздних версий .NET Framework (например, «<compilation targetFramework =» 4.0 «>»). Атрибут «targetFramework» в настоящее время ссылается на версию, которая позже установленной версии .NET Framework. Укажите допустимую целевую версию .NET Framework или установите требуемую версию .NET Framework.
В поле Источник ошибки страницы ошибки в качестве причины ошибки выделяется следующая строка из файла Web. config:
<компиляции targetFramework = «4.5»/>
Возможная причина и решение
Сервер не поддерживает ASP.NET 4,5. Обратитесь к поставщику услуг размещения, чтобы определить, когда можно добавить поддержку ASP.NET 4,5. Если обновление сервера не является вариантом, необходимо развернуть веб-проект, предназначенный для ASP.NET 4 или более ранней версии.
Если вы развертываете веб-проект ASP.NET 4 или более ранней версии в том же назначении, установите флажок удалить дополнительные файлы в месте назначения на вкладке Параметры мастера публикации веб-сайта . Если не выбрать пункт удалить дополнительные файлы в месте назначения, будет по-прежнему выведена страница ошибки конфигурации.
В окнах свойств проекта имеется раскрывающийся список Целевая платформа, но эту проблему нельзя устранить, просто изменив это с .NET Framework 4,5 на .NET Framework 4. Если изменить целевую платформу до более ранней версии платформы, проект по-прежнему будет содержать ссылки на сборки более поздней версии платформы и не будет выполняться. Необходимо вручную изменить эти ссылки или создать новый проект, предназначенный для .NET Framework 4 или более ранней версии. Дополнительные сведения см. в разделе .NET Framework нацеливание на веб-сайты.
Сборка нескольких конфигураций
При построении решения с помощью команды Сборка > Собрать решение, Visual Studio выполняет сборку только активной конфигурации. Все проекты, указанные в этой конфигурации решения, будут построены, и единственной конфигурацией проекта будет только одна из них, указанная в активной конфигурации решения и активной платформе решения, которая отображается на панели инструментов в Visual Studio. Например, Отладка и x86. Другие определенные конфигурации и платформы не создаются.
Если требуется создать несколько конфигураций и платформ в одном действии, можно использовать параметр Сборка > Пакетная сборка в Visual Studio. Для получения доступа к этой функции, нажмите Ctrl+Q, чтобы открыть поле поиска, и введите . Пакетная сборка доступна не для всех типов проектов. См. практическое руководство по сборке с использованием нескольких конфигураций.
Добавление и удаление исключений
Исключения можно добавлять и удалять. Чтобы удалить тип исключения из категории, выберите исключение и нажмите кнопку Удалить выбранное исключение из списка (знак «минус») на панели инструментов Параметры исключений. Или щелкните исключение правой кнопкой мыши и выберите Удалить в контекстном меню. Удаление исключения аналогично снятию флажка для исключения и заключается в том, что при возникновении исключения отладчик продолжит выполнение.
Добавление исключения
-
В окне Параметры исключений выберите одну из категории исключений (например, Среда CLR).
-
Нажмите кнопку Добавить исключение в выбранную категорию (знак «плюс»).
-
Введите имя исключения (например, System.UriTemplateMatchException).
Исключение будет добавлено в список (в алфавитном порядке) и будет автоматически выбрано.
Чтобы добавить исключение в категории «Исключения доступа к памяти GPU», «Исключения среды выполнения JavaScript» или «Исключения Win32», необходимо включить код ошибки, а также описание.
Dica
Проверьте правильность написания! В окне Параметры исключений не проверяется существование добавленного исключения. Поэтому при вводе Sytem.UriTemplateMatchException появится запись для этого исключения (а не для System.UriTemplateMatchException).
Параметры исключения сохраняются в файл SUO решения и таким образом применяются к конкретному решению. Параметры конкретного исключения нельзя повторно использовать в решениях. Сейчас сохраняются только добавленные исключения. Удаленные исключения не сохраняются. Вы можете добавить исключение, закрыть и повторно открыть решение — исключение будет находиться в нем по-прежнему. Однако при удалении исключения, закрытии и повторном открытии решения исключение появится снова.
В окне Параметры исключений поддерживаются универсальные типы исключений на C#, но не на Visual Basic. Чтобы делать останов при возникновении таких исключений, как , необходимо добавить исключение в виде MyNamespace.GenericException’1. То есть, если создано следующее исключение в коде:
Вы можете добавить исключение в окне Параметры исключений, используя предыдущую процедуру:
Итоги
Включение трансформации для App.config осуществляется в 2 шага: добавить трансформации, включить трансформацию во время сборки проекта. Часть операций приходится делать вручную.
Таким же образом можно включить трансформации для любых XML-файлов.
Статья из серии Continuous Integration: Работа с Config-файлами:
- Continuous Integration: Трансформация Web.config
- Continuous Integration: Процесс сборки проекта и трансформации Config-файлов
- Continuous Integration: Создание собственной конфигурации
- Continuous Integration: Трансформация App.config
- Continuous Integration: Рефакторинг файлов конфигурации