#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 />
перед вашим дополнительным членством. Обычно я удаляю всех своих поставщиков, прежде чем добавлять их, на всякий случай.