Доступ к базе данных и строке подключения

#asp.net #sql #connection-string

#asp.net #sql #строка подключения

Вопрос:

Это моя строка подключения:

  <add name="modelConnectionString" connectionString="Data Source=.SQLEXPRESS;AttachDbFilename='D:Documents and SettingsDimaMy DocumentsVisual Studio 2010WebSitesWebSite10App_DataASPNETDB.MDF';Integrated Security=True;User Instance=True;" providerName="System.Data.SqlClient"/>
  

Он перестал выдавать исключения, но доступ к базе данных, похоже, не работает, потому что, когда я отвечаю на вопрос о подтверждении, он говорит, что это неправильно и не впускает меня!!

     <membership defaultProvider="MyMembershipProvider">

  <providers>
    <clear/>
    <add
   name="MyMembershipProvider"    
   type="System.Web.Security.SqlMembershipProvider"      
   connectionStringName="modelConnectionString"             
   minRequiredPasswordLength="1"          
   minRequiredNonalphanumericCharacters="0"
   enablePasswordReset="true"
   maxInvalidPasswordAttempts="1000"
   passwordAttemptWindow="4000"
   enablePasswordRetrieval="true"
   requiresUniqueEmail="false"
   passwordFormat="Encrypted" 
   applicationName="/WebSite10"

   />
  </providers>
</membership>
  

Комментарии:

1. Сначала проверьте режим аутентификации Sql Server, к которому вы подключаетесь, а затем сообщите мне все подробности.

2. вы создали пользователя aspnet в sqlserver? и какие привилегии вы предоставили

3. Режим аутентификации — «Формы».. К сожалению, я не знаю процедуру создания пользователя aspnet и привилегий.

Ответ №1:

Вы не указали имя базы данных в строке подключения — в верхней строке вы указываете файл базы данных, в котором вы должны объявить имя базы данных.

 Server=.SQLExpress;AttachDbFilename=c:asdqwemydbfile.mdf;Database=dbname; Trusted_Connection=Yes;
  

Если вы подключаете файл базы данных к локальному экземпляру SQL, то вам необходимо использовать AttachDbFilename свойство.

Комментарии:

1. Почему мне нужно использовать SQLExpress, а не localserver.. сервер по умолчанию?.. ну, я не прикрепляю это. это aspnetdb, который создается автоматически Visual Studio 2010

2. Вам не нужно использовать SQLExpress, это просто примерное имя экземпляра. Вам нужно указать, где находится экземпляр сервера, к которому будет подключена база данных.

3. я добавил вашу модификацию. теперь он не выдает исключение, он просто говорит, что имя пользователя отсутствует в базе данных. Экземпляр находится внутри Server Explorer в Visual Studio. Это было добавлено программой (VS2010), а не мной

4. Итак, подключение к базе данных выполнено, теперь у вас есть достаточно, чтобы продолжить и доработать остальное. Это не имеет ничего общего со строкой подключения, но связано с поставщиком членства. Рассмотрите возможность использования WAT для управления пользователями для поставщика членства.

5. Не удается открыть базу данных «dbname», запрошенную при входе в систему. Не удалось войти в систему. Не удалось войти в систему для пользователя ‘DIMA-00AA1DA557Dima’. — Это то, что я пробовал. это не дает мне старого исключения, которое я указал в вопросе. Я все еще не могу получить доступ к базе данных. Интересно, что вы указываете в строке подключения или делаете в конфигурации Windows, чтобы иметь возможность входить в базу данных

Ответ №2:

Вы не можете создать соединение через Visual Studio server Explorer. Вы можете войти на сервер, используя правильные учетные данные, а затем сохранить правильную строку подключения в конфигурационном файле.

В базе знаний Microsoft есть статья! на этом.

Комментарии:

1. Спасибо за ссылку. Но можете ли вы понять, почему мне не удается подключиться к базе данных с помощью одной из строк подключения, приведенных выше?