2012-02-17 1 views
0

Я создал сайт asp.net, используя VS 2008. Я использовал db в app_data для членства. Я переношу это на новый сервер, и db будет прикреплен к экземпляру SQL Server 2008 R2. Я хотел изменить имя db, чтобы он лучше вписывался в остальную часть сервера. Поскольку я изменил имя из 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 Поставщик: Тест, чтобы проверить БД работает отлично.

Редактировать: Я удалил publicKey, если он привязан ко мне в некотором роде.

Редактировать: Я изменил имя на aspnetdb, и он все еще не работает.

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

ответ

0

Я исправил это, открыв файл 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> 
0

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

2

Если у вас есть эта проблема снова, это может быть вызвано тем, что забыл правильно установить атрибут applicationName в web.config. Вот great, detailed explanation of the common problem. Если сравнить файл web.config с вашего вопроса к вашим web.config в вашем ответа, вы увидите, что applicationName атрибутов в двух файлах имеют различных значения; WebSite2 против /.

+0

Я дал это большие пальцы вверх для того, чтобы быть полезным ресурсом. Спасибо. – Primetime

Смежные вопросы