Это не допустимое место для точки останова
Я пытаюсь поставить точку останова на приведенной ниже странице в моих ASP.NET MVC 2 приложениях .ascx или .aspx файлах в Visual Studio 2010. Но это не позволит мне, это показывает:
"Это не допустимое место для точки останова".
Раньше это работало. Почему это? Любая помощь приветствуется.
Моя страница .ascx выглядит так:
![enter image description here]()
РЕДАКТИРОВАТЬ 1
.cs работает с файлами. Не работает только с файлами .aspx и .ascx.
РЕДАКТИРОВАТЬ 2
Нет приведенных ниже ссылок в разделе комментариев, дающих решение проблемы. "Мы не можем добавить дополнительный код для базы кода только для debug.So есть ли какой-либо метод просто активировать красную метку (метку отладки) для моих кодов вида С#, как указано на изображении?
РЕДАКТИРОВАТЬ 3
Он работает внутри тегов javascript в одном файле, но не для кода С#. Любой ключ?
![enter image description here]()
EDIT 4
Вышеупомянутая проблема возникла после того, как я установил Windows Azure SDK для .NET - октябрь 2012
Когда я компилирую код, он дает Waring сообщение, как показано ниже.
![enter image description here]()
Ответы
Ответ 1
После показа подсветки синтаксиса @Keith я просмотрел свой файл сверху вниз и наоборот. Тогда я нашел проблему.
В моем проекте появилось предупреждающее сообщение, показанное выше EDIT 4.
После того, как я решил эту проблему, проблема с точкой останова (debug) также исчезла.
Для этого я использовал ниже упомянутую ссылку.
Не удалось загрузить файл или сборку msshrtmi - неправильный формат в развертывании Azure
В будущем я напишу полное пошаговое руководство, чтобы показать, как избавиться от этой проблемы.
Спасибо всем, кто оказал мне поддержку.
Ответ 2
Эта проблема возникает, если вы используете Asp.Net Mvc 5 в Visual Studio 2012, но не установили надлежащую оснастку. Для меня это произошло потому, что я обновил свою версию Asp.Net Mvc 4 до версии 5 через Nuget. Однако это не устанавливало инструментарий в VS 2012, так что среда IDE может правильно анализировать и обрабатывать файлы .cshtml
. Таким образом, ни один из кода бритвы не появился как действительный С#, и было невозможно установить какие-либо точки останова (с ошибкой "это не допустимое место для точки останова", если вы попытаетесь установить его).
Решение заключается в установить надлежащую оснастку. (или прямая ссылка). После того, как я установил оснастку и перезапустил VS, я смог снова добавить контрольные точки в файлы .cshtml
.
Ответ 3
Глядя на содержимое блока кода <% %>
на скриншоте, вы увидите, что синтаксис не подсвечивается. Обычно это означает, что VS не признал, что блок содержит код С# на стороне сервера.
Он работает для Javascript, потому что VS может распознать это как клиентскую сторону script и сломать его.
Исправьте выделение синтаксиса, и вы также сможете сломать его.
Как правило, это происходит из-за того, что VS имеет сложную задачу переключения между редактированием HTML (с визуальным предварительным просмотром, сортировкой) и кодом С#, а иногда и ошибкой.
Наиболее распространенной причиной этого является отсутствующая директива Language
в верхней части файла .aspx или .ascx:
<%@ Page Language="C#" ...
Или
<%@ Control Language="C#" ...
Вы также можете попробовать явный блок кода, например:
<script type="text/C#" runat="server"> ...
Это также может быть вызвано вложенными страницами .master: попробуйте очистить папку ReflectedSchemas: %appdata%\Microsoft\VisualStudio\10.0\ReflectedSchemas\
Было также известно, что удаление пробной версии ReSharper вызывает это.
Наконец, иногда это просто путаница в VS-части - попробуйте перезапустить, и если это не сработает, попробуйте переустановить файл и снова перезапустить. Глупо (я знаю), но иногда это побуждает VS понять это.
Кстати, это то, что они значительно улучшили в VS 2012
Ответ 4
Это ошибка в Visual Studio 2013. Она должна быть исправлена в update 2 (или выше).
Тем не менее, обновление только временно решило проблему для себя.