WCF RIA дает сбой, пока «Чистое решение» не работает - PullRequest
3 голосов
/ 10 ноября 2011

Странная проблема, которая только начинает возникать в проекте RIA Services SL / WCF, над которым я работал в течение прошлого года. В последнее время я получаю это сообщение каждый раз, когда исправляю ошибку и перезапускаю приложение.

Операция загрузки не выполнена для запроса 'GetDepartments'. Произошла ошибка при выполнении определения команды. Смотрите внутреннее исключение для деталей. Сообщение InnerException: пакетное выполнение прекращается из-за запроса отладчика.

Если я «очистил» решение, а затем запустил приложение, все снова заработало.

Я пытался определить точную ошибку, но она возникает во время обратного вызова операции Load, и я не уверен, что происходит.

Я включил SQL Profiler, и запрос выглядит так же, и я не думаю, что у меня возникла проблема на сервере.

Любые советы будут оценены. Сборка занимает слишком много времени!

R

Ответы [ 3 ]

1 голос
/ 16 ноября 2011

Предыдущий ответ должен помочь.Это связано с операцией загрузки, потому что этот метод запрашивает базовую базу данных (возможно, через ORM, но это не имеет значения, важно только, где открыт SqlConnection).Если вам нужна отладка сервера sql, взгляните на эту ссылку от MS, которая объясняет, как ее настроить (вам потребуются права администратора)Что касается «чистого решения», я УЖАСУ, что оно связано с несовпадением pdb с выполненной сборкой (сборка, запущенная в процессе, к которому подключен отладчик VS), это отключило бы отладку для этой сборки, таким образомВы не подвергаетесь исключению.

Надеюсь, это поможет,Marco

1 голос
/ 22 ноября 2011

Тот факт, что очистка решения помогает, может означать одно из двух:

  1. Вы перезапустили решение и что-то сбросили (пул соединений, поток, кэш загрузчика классов и т. Д.).Попробуйте перезапустить решение без очистки, чтобы увидеть, так ли это
  2. Ваш процесс сборки каким-то образом генерирует библиотеки DLL для одного и того же кода в нескольких местах, и при выполнении базовой сборки обновляется только одна из них.Это может вызвать несоответствие интерфейса, несоответствие версии сериализации или другие подобные проблемы.Попробуйте поискать имя DLL во всем решении и посмотрите, сколько мест оно отображает.Затем выполните базовую сборку и посмотрите, сколько из них изменило метки времени.Аналогично, попробуйте использовать FileMon, чтобы увидеть, откуда на самом деле загружается DLL.
1 голос
/ 16 ноября 2011

Попробуйте отключить отладку SQL, просто так:

Свойства проекта> Отладка> [снять флажок] Включить отладку SQL Server

...