asp.net Не удалось найти членство

#asp.net #membership-provider

#asp.net #поставщик членства #членство-поставщик

Вопрос:

Я создал таблицы aspnetdb.mdf и sp внутри моей базы данных на sql-сервере удаленного хостинга. Поставщик членства подключается удаленно и работает нормально, когда я запускаю его из своего локального окна разработчика. Но когда я пытаюсь это сделать на живом сайте, я получаю сообщение об ошибке ниже.
Вот мои настройки web.config.

 <add name="LocalSqlServer" connectionString="Data Source=remoteIP;Initial Catalog=admin_TeacherClassSchedule;User ID=developer;Password=blah" providerName="System.Data.SqlClient"/>

 <membership defaultProvider="SqlProvider">
      <providers>
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="LocalSqlServer"
          applicationName="/"
          enablePasswordRetrieval="true"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          requiresUniqueEmail="false"
          passwordFormat="Encrypted"
          maxInvalidPasswordAttempts="5"
          passwordAttemptWindow="10" />
      </providers>
    </membership>

    <roleManager enabled="true" defaultProvider="SqlProvider">
    <providers>
      <clear/>
      <add
        name="SqlProvider"
        type="System.Web.Security.SqlRoleProvider"
        connectionStringName="LocalSqlServer"
        applicationName="/" />
    </providers>
  

Ошибка сервера в приложении ‘/ TCS’.
Ошибка конфигурации
Описание: Произошла ошибка во время обработки файла конфигурации, необходимого для обслуживания этого запроса. Пожалуйста, ознакомьтесь с приведенными ниже подробными сведениями об ошибке и соответствующим образом измените свой файл конфигурации.

Сообщение об ошибке синтаксического анализатора: не удалось найти поставщика членства по умолчанию.

Ошибка источника:

Строка 42: Строка 43: Строка 44: Строка 45: Строка 46:

Ответ №1:

     <remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=1.1.1.1;Initial Catalog=dbname;User ID=blah;Password=blah" providerName="System.Data.SqlClient"/>

<membership defaultProvider="SqlProvider">
  <providers>
    <add
      name="SqlProvider"
      type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      connectionStringName="LocalSqlServer"
      applicationName="/"
      enablePasswordRetrieval="true"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="true"
      requiresUniqueEmail="false"
      passwordFormat="Encrypted"
      maxInvalidPasswordAttempts="5"
      passwordAttemptWindow="10" />
  </providers>
</membership>

<profile>
  <providers>
    <clear/>
    <add name="SqlProvider"
        connectionStringName="LocalSqlServer"
        applicationName="/"
        type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>

  </profile>
<roleManager defaultProvider="SqlProvider" enabled="true" >
  <providers>
    <clear/>
    <add
      name="SqlProvider"
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      connectionStringName="LocalSqlServer"
      applicationName="/" />
  </providers>
</roleManager>
  

Ответ №2:

Попробуйте поставить <clear /> перед вашим дополнительным членством. Обычно я удаляю всех своих поставщиков, прежде чем добавлять их, на всякий случай.