Это не допустимое место для точки останова

Я пытаюсь поставить точку останова на приведенной ниже странице в моих 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 (или выше).
Тем не менее, обновление только временно решило проблему для себя.