Visual Studio "Начать отладку" против "Присоединиться к процессу" - PullRequest
2 голосов
/ 12 мая 2009

У меня есть клиент-серверное приложение, использующее .Net 2.0 Framework. Я использую Visual Studio 2008 для создания и управления кодом.

Когда я запускаю версию приложения Debug или Release, просто запустив .exe, я получаю инструкцию вставки в базу данных, которая пытается вставить «0» для внешнего ключа таблицы, вызывая ошибку, первичный ключ другой таблицы не равен 0.

Когда я запускаю приложение, нажимая кнопку воспроизведения («Начать отладку»), оператор вставки использует правильный внешний ключ.

В первом случае это происходит, даже когда я "Присоединяюсь к процессу" к версии отладки после ее запуска.


Мой вопрос: в чем разница между подключением к отладочной версии приложения после его запуска и запуском приложения из отладчика?

Ответы [ 3 ]

4 голосов
/ 12 мая 2009

Если вы «Начнете отладку», вы запустите процесс хостинга vshost.exe . Это перезапускает создание AppDomain, позволяет отлаживать приложения с частичным доверием и позволяет помещать в песочницу приложения ClickOnce.

Ни одна из этих функций, скорее всего, не является причиной вашей ошибки (а vshost не был проблемой для большинства) - так что я думаю, что это, вероятно, красная сельдь

Возможно, вам следует рассмотреть многопоточные и временные проблемы, связанные с получением значения FK.

1 голос
/ 12 мая 2009

Без подробностей сложно сказать. Однако, чтобы рискнуть недооцененным предположением, держу пари, что вы видите проблему времени (состояние гонки или что-то подобное). По какой-то причине ваш сервер (я полагаю) получает ложные данные при запуске «нормально». Запуск его через IDE / отладчик приводит к задержке, которая позволяет клиентскому процессу (опять же, предположению) время, чтобы получить правильные данные на сервер.

0 голосов
/ 08 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...