Активатор.CreateInstance выдает исключение ArgumentNullException для параметра 'Type'
-
06-09-2019 - |
Вопрос
Недавно я столкнулся с проблемой с поставщиком моего профиля:он не будет корректно извлекать профили (см. Ошибку ниже).Это работало локально, но когда я помещал код, скомпилированный проектом веб-развертывания, на сервер, это приводило к сбою.
Значение не может быть нулевым.Имя параметра:Тип Описание:Необработанное исключение возникло во время выполнения текущего веб-запроса.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Трассировка Strack:
[Исключение ArgumentNullException:Значение не может быть нулевым.Имя параметра:тип] System.Активатор.CreateInstance(тип типа, логическое значение непублично) +2796915 System.Web.Profile.База профилей.CreateMyInstance(строковое имя пользователя, логическое значение IsAuthenticated) +76 System.Web.Profile.База профилей.Создать(Строковое имя пользователя, логическое значение IsAuthenticated) +312
Я нашел решение, но оно далеко не очевидно (смотрите Мой ответ ниже).
Решение
Решение моей ошибки состояло в том, чтобы снимите флажок этот параметр из проекта веб-развертывания:
Рассматривать как библиотечный компонент (удалить App_Code.Скомпилированный файл)
Другие советы
Простого создания проекта веб-развертывания снова после изменения флажка иногда бывает недостаточно.
Вам следует перестроить веб-сайт или очистить папку ASP.NET временные ASP.NET Файлы, обычно расположенную в "%WINDIR% Microsoft.NET\Framework\ v2.0.50727 \Временные ASP.NET Файлы".
Недавно я столкнулся с этой проблемой, и оказалось, что это отсутствующая зависимость.Использование инструмента fuslogvw.exe, поставляемого с Visual Studio, наконец-то выявило проблему.