изменил имя базы данных членов, не могу найти пользователей - PullRequest
0 голосов
/ 17 февраля 2012

Я создал сайт asp.net, используя VS 2008. Я использовал базу данных в app_data для членства. Я перемещаю это на новый сервер, и БД будет присоединен к экземпляру SQL Server 2008 R2. Я хотел изменить имя базы данных, чтобы оно лучше подходило к остальной части сервера. Поскольку я изменил имя с ASPNETDB.mdf на Reporting.MDF, я не могу войти, и ASP.NET говорит, что у меня нет пользователей. Я использовал функцию переименования в VS и обновил строку подключения.

<connectionStrings>
    <add name="MembershipConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Reporting.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
    <!--added to create new membership to connect to-->
<roleManager enabled="true">
  <providers>
    <clear/>
    <add connectionStringName="MembershipConnectionString" applicationName="WebSite2" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken="/>
  </providers>
</roleManager>
<membership defaultProvider="SqlMembershipProvider">
<providers>
 <clear/>
<add connectionStringName="MembershipConnectionString" enablePasswordRetrieval="false"
 enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="WebSite2"
 requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1"
 passwordAttemptWindow="10" passwordStrengthRegularExpression=""
 name="SqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" />
</providers>
</membership>

пользователей: 0 Провайдер: Тест для проверки работоспособности БД.

edit: я удалил publicKey, если он каким-то образом связан со мной.

edit: я изменил имя обратно на aspnetdb, и оно все еще не работает.

Если я удаляю код участника, он снова работает. Это после изменения имени обратно на aspnetdb. Я вернулся туда, откуда начал.

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

Если у вас снова возникла эта проблема, она, вероятно, вызвана тем, что вы забыли правильно установить атрибут applicationName в web.config.Вот отличное подробное объяснение общей проблемы .Если вы сравните файл web.config из вашего вопроса с вашим web.config в вашем ответе , вы увидите, что атрибуты applicationName в этих двух файлах имеют разные значения;WebSite2 против /.

0 голосов
/ 18 февраля 2012

Попробуйте сначала подключить базу данных aspnetdb. Затем переименуйте его с помощью Sql Management Studio.

0 голосов
/ 17 февраля 2012

Я исправил это, открыв machine.config и скопировав все данные о членстве.Затем использовал
очистить в каждом разделе.

<connectionStrings>
<add name="LocalSqlServer2" connectionString="Data Source=Johnny;Initial Catalog=aspnetdb;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
    <!--added to create new membership to connect to-->
  <membership>
    <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=" connectionStringName="LocalSqlServer2" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
    </providers>
  </membership>
  <profile>
    <providers>
      <clear/>
      <add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer2" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken="/>
    </providers>
  </profile>
  <roleManager>
    <providers>
      <clear/>
      <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer2" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken="/>
      <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken="/>
    </providers>
  </roleManager>
...