Да, вам нужно изменить строки подключения в файле web.config.
Посмотрите в файле web.config, вы, вероятно, увидите нечто подобное в элементе <membership>
:
<membership>
<providers>
<clear />
<add connectionStringName="LocalSqlServer"
name="AspNetSqlMembershipProvider"
[...]
type="System.Web.Security.SqlMembershipProvider,
System.Web,
Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>
Атрибут connectionStringName
указывает платформе искать в вашем элементе <connectionStrings>
строку подключения с именем «LocalSqlServer» - это может быть не определено в вашем файле web.config, поскольку его можно унаследовать от Machine.Config в Каталог конфигурации ядра .Net Frameworks.
Вероятно, вам следует выбрать новое имя для строки подключения и обновить своих членов, роли и профиль (если вы все их используете), чтобы использовать новое имя.
Тогда в элементе <connectionStrings>
есть следующее:
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="MyConnectionString"
connectionString="Data Source=[ServerName];Initial Catalog=[DatabaseName];Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Настройте значения в соответствии с вашими системами - я бы рекомендовал Integrated Security вместо сохранения логина и пароля вашей базы данных в файле web.config, но YMMV (например, на моем общем хосте я не могу использовать Integrated Security, поэтому должны предоставить данные пользователя / пароль).
Инструмент администрирования веб-сайта также учитывает эти строки подключения.
Изменить для ответа на комментарий
Вы успешно вошли в систему вообще? Или создал пользователя? Я просто хочу исключить, что строка подключения настроена и работает?
У вас также настроен и включен поставщик ролей? Вы обновили там атрибут "connectionStringName"?
Обратите внимание, что, как и раньше, machine.config указывает поставщика ролей по умолчанию, который пытается указать на локальный экземпляр SqlExpress, который, вероятно, является источником ошибки соединения.
<!-- Note enabled="true" - you need to turn this one on! -->
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="MyConnectionString"
[...]
type="System.Web.Security.SqlRoleProvider,
System.Web,
Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
Для получения более подробной информации об атрибутах elised, я бы порекомендовал документацию:
Как только вы настроите это, все должно работать.
Если вы не смогли создать пользователя / войти, я бы проверил:
- Строка подключения - убедитесь, что имена совпадают, убедитесь, что
data source
соответствует экземпляру вашего сервера (не всегда просто имя вашего компьютера, это может быть что-то вроде "MachineName \ SqlServer").
- Если вы используете интегрированную защиту, вам необходимо убедиться, что вы указали учетную запись, которую ваш сайт использует под соответствующими правами в базе данных: вы должны обнаружить, что в вашей базе данных есть ряд ролей, начиная с
aspnet_
для того, чтобы вы могли создавать пользователей (которые вам понадобятся, если у вас есть регистрационная форма), вы должны добавить учетную запись к aspnet_XXXX_FullAccess
ролям (по одной для членства, персонализации, профиля и ролей).