Не мог загрузить тип в Пользовательском поставщике Профиля

Я пишу маленькое консольное приложение в C#, который ссылается на пользовательский блок, который реализует пользовательского поставщика .net Profile. Я добавил следующие разделы к своему app.config файлу, который ссылается на пользовательский класс и блок.

<system.web>
<profile defaultProvider="MyCompanyProfileProvider" inherits="MyCompany.Web.User.GenericProfile" automaticSaveEnabled="false">
    <providers>
        <clear/>
        <add name="MyCompanyProfileProvider" connectionStringName="defaultDatabase" applicationName="/myApplication" type="MyCompany.Web.ProfileProvider, MyCompany.Web"/>
    </providers>
    <properties>
        <add name="JobRoleId" type="System.Int32"/>
        <add name="LastCompetencyId" type="System.Int32" defaultValue="0"/>
        <add name="MixSettings" type="System.Xml.XmlDocument"/>
    </properties>
</profile></system.web>

Однако, когда я запускаю приложение в режиме отладки, я получаю следующую ошибку, как будто это смотрит в Системе. Веб-блок, а не один указанный в app.config файле.

Не мог загрузить тип 'MyCompany. Сеть. Пользователь. GenericProfile' от блока 'Система. Сеть, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

У меня есть локальное веб-приложение, которое также использует блок и пользовательского поставщика Профиля и ту работу без любых проблем. Я проверил, что блок, на который ссылаются, копируется в выходной каталог.

Какие-либо идеи??

10
задан Kobi 24 May 2016 в 06:50
поделиться

2 ответа

Я наконец нашел ответ на этот вопрос, и это было так просто !! (Он говорит после нескольких часов поиска и отладки).

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

Однако вам необходимо указать при определении вашего профиля в атрибуте inherits. Примерно так:

До:

<profile defaultProvider="MyCompanyProfileProvider"
         inherits="MyCompany.Web.User.GenericProfile"
         automaticSaveEnabled="false">

После:

<profile defaultProvider="MyCompanyProfileProvider" 
         inherits="MyCompany.Web.User.GenericProfile, MyCompany.Web" 
         automaticSaveEnabled="false">

Надеюсь, это поможет кому-то еще в будущем с той же проблемой.

20
ответ дан 3 December 2019 в 19:32
поделиться

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

Ваше приложение ищет ваш пользовательский класс в сборке System.Web, что очень странно.

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

0
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: