Я использую VS 2010 Professional (в Windows 7 Professional 64), пишу с WCF 4.0.
У меня есть следующий код:
if (responseMessage.StatusCode == HttpStatusCode.NotFound)
{
throw new ContentNotFoundException(contentId, SSPErrorCode.PartnerRestGetStream404);
}
При подключении отладчика к процессу, установив точку останова в операторе «if» или перед этим, в то время как условие ложно (responseMessage.StatusCode имеет значение «OK»), отладчик переходит в оператор «if». Затем он переходит через оператор «throw», ничего не делая, а затем продолжает работу с кодом.
Я пробовал:
Перезапуск VS, выход из системы моего пользователя Windows, перезагрузка, очистка решения, его сборка, перестройка, переработка пула приложений, перезапуск IIS, добавление дополнительного кода в оператор if и в условие - ничего не получалось далеко.
Где-то должен быть кеш, который я могу почистить, чтобы избавиться от него, но что и где?
Погуглив это, я нашел только http: - social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/d4b70fd7-b74a-42ce-a538-7185df3d3254/, поэтому я попытался вручную установить точку останова, и в этом классе он не сломался, хотя в других классах - то же самое.
Я бы хотел исправить это без переустановки VS. Заранее спасибо!
Обновление
- Так как я поднял это и не смог найти ответ, я продолжил свой проект.
- Я наткнулся на эту проблему, о которой Джон Макинтайр сообщил в этом посте , что заканчивается упрощенным примером:
using System;
namespace IEnumerableBug2
{
class Program
{
static void Main(string[] args)
{
if (new object() == null)
throw new Exception();
try { } catch { }
}
}
}
Обновление № 2 :
Обратите внимание, что мой метод также содержит оператор try-catch, через несколько строк после оператора if.
Я только что попытался воспроизвести эту ошибку снова, и не удалось. Я собираюсь оставить вопрос о stackoverflow для тех, кому это может понадобиться, но, как я уже писал, я больше не могу воспроизвести поведение.