Я не совсем точно знаю, что это вызывает, но я знаю, как вы можете узнать (даже лучше, верно? :)).
В Visual Studio:
- Нажмите в меню «Отладка»
- Нажмите «Исключения ...»
- Установите флажок «Брошено» в «Общих исключениях времени выполнения»
Это заставит Visual Studio остановить отладчик в любом исключении, чтобы вы могли проверить, что на самом деле происходит. (не влияет на производственный код, останавливается только в VS)
В качестве идентификатора вы можете захотеть внедрить что-то вроде автоматической отправки исключений по электронной почте или подобное, чтобы получить больше информации с рабочего сайта.
Обратите внимание, что вы, возможно, не сможете перехватить все исключения в VS из коробки (исключения первого раза иногда могут быть немного неуловимыми). Если вы хотите быть более хардкорным, вы можете использовать отладчик Visual Studio для отладки .Net Framework . Ваша цель должна состоять в том, чтобы увидеть полное исключение + трассировка стека, которое в большинстве случаев расскажет вам все о том, что идет не так.
Хорошей практикой является избавление от исключений (найти причину и исправить), не скрывать и не игнорировать их.
EDIT
Также ничего не стоит, что « исключения первого шанса » - это исключения, которые вполне могут быть захвачены при попытке попробовать. Некоторые внутренние функции в .Net будут генерировать исключение при выполнении определенного условия, это является частью работы Visual Studio / отладки и не означает, что что-то не получилось. Visual Studio запишет их для вас на тот случай, если они вам понадобятся, но это не значит, что вы должны действовать в соответствии с ними.