2017-02-15 19 views
1

Я пытаюсь читать из базы данных SQL Server, которая размещена на MS Azure, через веб-сайт ASP.NET WebForms, созданные в Visual Studio 2013.«MultipleActiveResultsSets» Не поддерживается

Я хранился строки подключения в Web.Config, и ссылались на него в «Code-Behind».

Однако, когда я пытаюсь запустить Default.aspx локально, отображается ошибка this.

Вот мой Web.Config:

<connectionStrings> 
    <add name="FYPConnectionString1" 
    connectionString="Data Source=damo.database.windows.net‌​;Initial Catalog=Ballinora_db;   
    Persist Security Info=True; User ID={Username};Password={Password};" /> 
    </connectionStrings> 

Я удалил «MultipleActiveResultsSets = False» из строки подключения, чтобы увидеть, если остановлен ошибка, но вместо этого, ошибка теперь отображается для «Шифрование».

Таким образом, ошибка появляется для следующего элемента после части пароля в строке соединения. Будет ли пароль иметь какое-либо отношение к проблеме?

Кроме того, это имя пользователя и пароль, которые требуются, являются ли они регистрационными данными администратора сервера, которые появляются на портале Azure?

Вот Code-Behind также:

private void bindRepeater() 
{ 
    string constr = ConfigurationManager.ConnectionStrings["FYPConnectionString1"].ConnectionString; 
    //-- assuming Azure connection string stored in ConnectionString config in Web.Config as YourConnString 
    using (SqlConnection con = new SqlConnection(constr)) 
    { 
     using (SqlCommand cmd = new SqlCommand("SELECT Name FROM Users", con)) 
     { 
      cmd.CommandType = CommandType.Text; 
      con.Open(); 
      SqlDataAdapter sda = new SqlDataAdapter(cmd); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      repTest.DataSource = dt; 
      repTest.DataBind(); 
      con.Close(); 
     } 
    } 
} 

protected void btnDisplay_Click(object sender, EventArgs e) 
{ 
    this.bindRepeater(); 
} 
+0

Здравствуйте, я также использую Azure Cloud Server с базой данных SQL. Я обновил свой ответ. И, пожалуйста, обратитесь к «Связанным» в правой части этого вопроса. С вами есть несколько подобных случаев. Вот ссылки. 1) http://stackoverflow.com/questions/1404268/keyword-not-supported-data-source?rq=1 2) http://stackoverflow.com/questions/9236554/keyword-not-supported-name?rq = 1 –

+0

3) http://stackoverflow.com/questions/41647501/connectionstring-keyword-not-supported?rq=1 4) http://stackoverflow.com/questions/33599853/the-connection-does-not- support-multipleactiveresultsets-несмотря на-в-connec? rq = 1 5) http://stackoverflow.com/questions/41483766/databinding-keyword-not-supported-metadata?rq=1 –

ответ

0

Значение по умолчанию MultipleActiveRe sultSets является ложным.

И если вам не нужна функция, просто выйдите (удалите) 'MultipleActiveRe sultSets = False' соединительной строки.

Поскольку значение по умолчанию равно false. Если вы хотите ложь, вам не нужно писать ее намерениями.

Нам нужна функция MultipleActiveRe sultSets при открытии второго SQL-соединения внутри цикла SqlDataReader первого SQL-соединения.

Однако, почему «MultipleActiveRe sultSets = False» распознается как неправильный синтаксис, по-прежнему остается вопросом.

Обновление-

Именно поэтому мне было интересно, почему это было неправильно. Я думаю, что синтаксис для MultipleActiveRe sultSets и Encrypt не имеет проблем.

Вот мой ConnectionString в web.config:

<connectionStrings> 
    <add name="GreenLeaf" connectionString="Server=tcp:greentree.database.secure.windows.net,1433;Database=greentea;User [email protected];Password=abc123;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;MultipleActiveResultSets=True;"/> 
</connectionStrings> 

Разногласия с вашим является

1) ТСР 2) безопасный 3) @greentree (имя_серверы GreenTree вместе с удостоверением, как (greenusers @ greentree) 4) без провайдера

«безопасный» - это новая функция, которая Azure автоматически обеспечивает безопасное соединение, и об этом вы можете найти в Интернете.

Проверьте брандмауэр сервера и попробуйте сделать снимок с указанными выше точками.

Использование идентификатора администратора является правильным, но с точки зрения безопасности вам необходимо создать дополнительный вход и пользователь для внешних пользователей с ограниченными ролями и разрешениями.

Можете ли вы подключиться к Azure Server (База данных) через Azure Portal? Visual Studio? Серверная студия управления?

При входе в Server Management Studio во всплывающем окне для подключения есть «Имя сервера». Введите «greentree.database.windows.net» и попробуйте войти в систему с учетными данными администратора.

Или вы можете подключиться к Azure Server без connectionString в Web.Config, но в виде простого кода?

И если возможно, пожалуйста, обновите с помощью screencapture исключения, а не только текст.

И, наконец, я уверен, что вы очень хорошо знаете, нам необходимо зашифровать connectionString позже для обеспечения безопасности.

+0

Привет @ Кей Ли, я удалил 'MultipleActiveResultSets = False' из строки подключения, но затем появляется та же ошибка. Однако на этот раз для _Encrypt_. Поэтому по какой-то причине эта ошибка возникает после пароля в строке соединения. Означает ли это дополнительную информацию? – user7554035

+0

Привет, Теперь я обновлю строку подключения, чтобы посмотреть, как это работает, чтобы увидеть, работает ли это. Я могу войти в мою базу данных в SQL Server Management Studio с помощью входа в систему проверки подлинности SQL Server. Но когда я помещаю эти же данные для входа в строку подключения, я получаю эту ошибку. – user7554035

+0

Хорошо, используйте connectionString, которая автоматически создается Visual Stuio или Server Management Studio. И взгляните на подобные случаи. –

0

Вы ошибочно указали «MultipleActiveResultsSets». «Результат» в нем не множественный.

Правильный способ: «MultipleActiveResultSets».

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

  • Нет связанных вопросов^_^