Не удается подключиться к базе данных SQL Server - PullRequest
2 голосов
/ 29 января 2010

Я не могу подключиться к базе данных SQL Server.

Я пытаюсь настроить членство с ролями на моем веб-сайте с помощью учебника по MSDN. Раньше он работал только локально на моей машине, однако после следования советам, данным на разных форумах, и по стеку, ситуация ухудшилась, и теперь я даже не могу подключиться к базе данных SQL Server.

Когда я запускаю утилиту aspnet.regsql.exe, я получаю следующее сообщение об ошибке:

"Setup failed.

Exception:
Unable to connect to SQL Server database.

----------------------------------------
Details of failure
----------------------------------------

System.Web.HttpException: Unable to connect to SQL Server database. ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
   --- End of inner exception stack trace ---
   at System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
   at System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install)
   at System.Web.Management.SqlServices.Install(String database, SqlFeatures features, String connectionString)
   at System.Web.Management.ConfirmPanel.Execute()"

Кроме того, я не могу использовать инструмент регистрации веб-сайтов ASP.NET. Когда я нажимаю на вкладку «Безопасность», я получаю следующую ошибку:

"There is a problem with your selected data store. This can be caused by an invalid server name or credentials, or by insufficient permission. It can also be caused by the role manager feature not being enabled. Click the button below to be redirected to a page where you can choose a new data store. 

The following message may help in diagnosing the problem: Unable to connect to SQL Server database."

Итак, я нажимаю на кнопку «Выбрать хранилище данных» в соответствии с инструкциями, что позволяет мне выбрать провайдера. Поставщик называется «AspNetSqlProvider», рядом с ним есть ссылка «Тест». Я нажимаю на Test и получаю следующее сообщение об ошибке:

"Could not establish a connection to the database. 
If you have not yet created the SQL Server database, exit the Web Site Administration tool, use the aspnet_regsql command-line utility to create and configure the database, and then return to this tool to set the provider."

Единственный другой вариант на этой странице - нажать «Назад».

Может кто-нибудь помочь мне разобраться? Прошло уже больше недели, и я искал ответы сверху и снизу, и мне было дано так много ссылок на сообщения, которые не помогли. Я был бы признателен за любую помощь.

Я попытался запустить инструмент Configuration Surface Tool и включить каналы, локальные / удаленные подключения, хотя это не имело никакого значения.

Я даже дошел до того, что полностью удалил Visual Web Developer и SQL Server 2005 и 2008 и удалил все следы, оставленные этими приложениями, а затем заново загрузил их все и заново установил их все.

Пока не повезло.

Пожалуйста, помогите Спасибо

Bael

Редактировать

С тех пор я пытался отключить брандмауэр, меняя порт, но безуспешно.

РЕШЕНИЕ

Да, это может быть немного радикальным. И я думаю, что это решение должно быть последним средством, когда все остальное терпит неудачу.

Мне удалось исправить все ошибки, удалив SQL Server 2005 и 2008. Затем я зарегистрировался, загрузил SQL Server Express Edition 2008 (с инструментами управления) и установил их.

После завершения установки я закрыл Visual Web Developer, снова открыл его и щелкнул вкладку «Безопасность» после открытия инструмента администрирования веб-сайта ASP.NET, и с тех пор все просто «заработало» ...

1 Ответ

1 голос
/ 29 января 2010

Можете ли вы подключиться с помощью sqlcmd локально? Можно ли подключиться с помощью sqlcmd с удаленной машины?

Используете ли вы имя пользователя / пароль SQL или доверенную аутентификацию Windows? Если последнее, запустите CommandPrompt / Powershell от имени другого пользователя и посмотрите, сможете ли вы подключиться.

Я предполагаю, что вы не добавили логины в SQL и что вы запускаете aspnet.regsql.exe без расширенных привилегий. Если он успешно запускается из командной строки, которая была запущена от имени администратора, это полезный знак.

Существует целый ряд потенциальных проблем, но в последнее время я часто вижу повышенные привилегии. Лучше создать выделенную учетную запись, предоставить ей соответствующий объем доступа к экземпляру SQL, а затем запустить командную строку в качестве этой учетной записи (щелкните правой кнопкой мыши, чтобы получить старую опцию «Запуск от имени»).

...