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

В настоящее время я занимаюсь разработкой веб-приложения с использованием asp.net c #. Я получил сервер, где я сегодня был собираюсь опубликовать мой сайт и свою базу данных. Это сервер под управлением Windows Server 2008 R2.

Но у меня есть одна проблема:

Кажется, мой веб-сайт не имеет доступа к базе данных. Если я запускаю веб-сайт с другого компьютера в моей локальной сети, я могу получить доступ к базе данных сервера, НО я не могу при запуске веб-сайта с того же сервера, где находится база данных. Это действительно странно. Я надеюсь, что кто-то может помочь.

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

Самое странное, что я использую одну и ту же строку подключения на обоих компьютерах, но она все равно не работает. Возможно, есть какие-то настройки в Windows Server 2008?

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

<add name="ConnectionString" 
     connectionString="Data Source=AXELS;Initial Catalog=Sailor;Persist Security Info=True;User ID=sa;Password=saab123" 
     providerName="System.Data.SqlClient" />

Ответы [ 4 ]

2 голосов
/ 19 декабря 2011

Поскольку соединение работает на одной машине, а не на другой, я предполагаю, что у вас есть проблема с брандмауэром или чем-то подобным - но будет трудно определить, пока мы не увидим фактическое сообщение об ошибке.А до тех пор есть несколько вещей, которые вы, возможно, захотите сделать:

  • Если это выглядит так, как будто для соединения требуется время ожидания, прежде чем вы получите ошибку, это указывает на проблему с подключением.У вас есть межсетевой экран между двумя серверами?Есть ли на сервере базы данных брандмауэр, который явно позволяет вашей машине (или внутренней) пройти через компьютер, но не настроен ли он, чтобы веб-сервер проходил?Необходимо убедиться, что на сервере открыт порт 1433.

  • Есть ли на веб-сервере другие сайты, которые могут подключаться к базе данных?

  • Если у вас есть консольный доступ к серверу, попробуйте настроить ODBC от сервера к базе данных - обычно в Панели управления -> Источники данных (ODBC).Если вы устанавливаете соединение с тем же сервером БД, именем пользователя и паролем и тестируете соединение, вы можете получить некоторые указания на то, что не так.

Если приведенное выше не дает вамс ответом я бы попытался пройти через шаги, описанные здесь:

http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/

И если это не удастся, взгляните на это - что, по-видимому, действительно только тогда, когда вы получаетеSQL Network Interfaces, error: 26

http://blogs.msdn.com/b/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx

1 голос
/ 19 декабря 2011

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

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

0 голосов
/ 19 декабря 2011

Это применимо только в том случае, если вы не используете проверку подлинности Windows, иначе прочитайте пост о привилегиях от Christian Specht - в этом случае я согласен.

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

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

Посмотрите на ваш файл hosts и посмотрите, есть ли какие-нибудь забавные указатели, кроме стандартных.

Расположен в C: \ Windows \ System32 \ drivers \ etc

Должна быть запись: 127.0.0.1 localhost

0 голосов
/ 19 декабря 2011

Вы проверили, включены ли используемые вами протоколы на SQL Server, например:

C: \ Windows \ System32 \ cliconfg.exe - 64-разрядная версия

C: \Windows \ SysWOW64 \ cliconfg.exe - 32-разрядная версия

или проверьте вкладки «Собственный клиент SQL Server *» диспетчера конфигурации SQL Server.

...