Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Ситуация в следующем.
Сервер баз данных Sql Server Developer 2008 R2 SP1.
Имеется проект, который собирается в TeamCity на удаленном сервере в локальной сети. В сборке имеются тесты, которые стучаться к SQL Server'у на моей машине для выполнения. Строка подключения стандартная с пользователем и паролем sa. Всё успешно проходило на прежней установленной операционке Windows XP, проблем не было никаких.

НО, операционку переустановил на своей машине на Windows 7. Удаленный доступ открыт, порт прописан в Брандмауэре Windows, SQL Browser запущен. Проверял подключение с другой машины - успешно проходит, графическая среда SQL Management Studio успешно подключается с использованием sa. Повторюсь, брандмауэр включен!

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

Подскажите пожалуйста какие еще нужно прописать настройки в брандмауэре, чтоб TeamCity, в частности прохождение тестов стало успешным, чтоб смогли достучаться!!! Что нужно, подскажите пожалуйста, может кто сталкивался?

Не хочется полностью отключать брандмауэр, и самому хотелось бы разобраться в проблеме, чего не хватает....
5 фев 12, 20:10    [12036770]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Выяснить какие протоколы/порты слушает ваш sql-сервер и открыть их в файрволле.
5 фев 12, 22:25    [12037299]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Порт открыт, написано в первом сообщении...
Уточните что еще можно открывать?
Чего еще не хватает?
5 фев 12, 22:26    [12037306]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Алексей Кр
Порт открыт, написано в первом сообщении...
И это подверждается telnet'ом?
Алексей Кр
Уточните что еще можно открывать?
Открывать надо нужные порты и протоколы. А не какие-нибудь.
5 фев 12, 22:28    [12037310]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
И неплохо бы откопать в логах TeamCity текст ошибки.
5 фев 12, 22:29    [12037315]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Также написано в первом сообщении:
"в логах пишется про не найденный сервер, не может достучаться... "
5 фев 12, 22:31    [12037322]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Алексей Кр
Также написано в первом сообщении:
"в логах пишется про не найденный сервер, не может достучаться... "
И вы больше ничего, кроме того, что написано в первом сообщении, озвучивать не собираетесь? Типа, что не написано надо угадать? Или это прям так в логе и написано, "не могу достучться"?

Сообщение было отредактировано: 5 фев 12, 22:51
5 фев 12, 22:51    [12037404]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
Алексей Кр,

Сервер дефолтный инстанс или именованный? Какие протоколы разрешены на сервере? Порт TCP фиксированный или динамический? Вторая машина по какому протоколу соединяется?
В любом случае ознакомьтесь -- Настройка Брандмауэра Windows для разрешения доступа к SQL Server
5 фев 12, 23:31    [12037591]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Стандартная ошибка .NET, не может достучаться, ошибка на транспортном уровне...
Вот, более подробно:
SetUp method failed. SetUp : System.TypeInitializationException : The type initializer for 'test.TestsBase' threw an exception. ----> 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: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) at System.RuntimeMethodHandle._InvokeConstructor(IRuntimeMethodInfo method, Object[] args, SignatureStruct& signature, RuntimeType declaringType) at System.RuntimeMethodHandle.InvokeConstructor(IRuntimeMethodInfo method, Object[] args, SignatureStruct signature, RuntimeType declaringType) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.ConstructorInfo.Invoke(Object[] parameters) at NUnit.Core.Reflect.Construct(Type type) at NUnit.Core.TestSuite.CreateUserFixture() at NUnit.Core.TestSuite.DoOneTimeSetUp(TestResult suiteResult) --SqlException at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, 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()
5 фев 12, 23:34    [12037597]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
invm
Алексей Кр,

Сервер дефолтный инстанс или именованный? Какие протоколы разрешены на сервере? Порт TCP фиксированный или динамический? Вторая машина по какому протоколу соединяется?
В любом случае ознакомьтесь -- Настройка Брандмауэра Windows для разрешения доступа к SQL Server

К сожалению более подробно пока ответить не могу... т.к. всё на работе
единственное вот:
Сервер именованный: MyComp\SQLDevelop2008R2
Протоколы все Enabled (кроме via)
В брандмауэре разрешен тот порт который указан в разрешенном протоколе TCP/IP
С любой машины (в локальной сети, проверял с нескольких) через графическую среду могу подключиться к своему SQL-серверу.

Порт TCP фиксированный или динамический?
Вторая машина по какому протоколу соединяется?

Где это завтра посмотреть? :)
5 фев 12, 23:38    [12037611]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
Информацию о портах в SQL Server Configuration Manager.
Протокол соединения в DMV sys.dm_exec_connections, столбец net_transport.

Статью по ссылке конечно же не читали?
6 фев 12, 00:40    [12037768]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Вопрос удалось решить интересным способом, спасибо всем обратившимся, а также ссылке: http://msdn.microsoft.com/ru-ru/library/ms345299.aspx
В Network Configuraton в свойствах протокола TCP/IP на вкладке IP Addresses, в разделе IPAll указал фиксированный TCP Port = 49172.
В брандмауэере дал разрешения на данный порт.
В строке подключения указал следующее:
<property name="connection.connection_string">Data Source=tcp:mycomp,49172;Persist Security Info=True;Initial Catalog=myDb;User ID=sa;Password=123</property>

Всё успешно заработало!!! :)


Но, повторюсь, со строкой подключения
<property name="connection.connection_string">Data Source=mycomp\sqldevelop2008R2;Persist Security Info=True;Initial Catalog=myDb;User ID=sa;Password=123</property>

Не удаеться подключиться...
6 фев 12, 10:42    [12038680]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Алексей Кр
В Network Configuraton в свойствах протокола TCP/IP на вкладке IP Addresses, в разделе IPAll указал фиксированный TCP Port = 49172.

И после перезапуска сервера в логе увидели, что сервер слушает именно этот порт ?

Алексей Кр
В брандмауэере дал разрешения на данный порт.

И с клиентской машины через запуск telnet-а убедились, что есть доступ на этот порт ?


Алексей Кр
Data Source=tcp:mycomp,49172

Вы уверены, что ваш TeamCity поддерживает именно такую строку соединиения - tcp: ?

Алексей Кр
Data Source=mycomp\sqldevelop2008R2;

Если у вас именованный инстанс, то почему в первой строке подключения он не указан ?
6 фев 12, 12:02    [12039177]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к SQL Server по сети (в частности настройка для тестов в TeamCity)  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Повторюсь: Всё успешно заработало!!! :)
Строка подключения для выполнения тестов.
Воспользовался информацией с адреса: http://msdn.microsoft.com/ru-ru/library/ms345299.aspx
В частности говорится:
автор
...этом примере для именованного экземпляра введите tcp:<имя_компьютера>,49172.

Собственно данный синтаксис подходит и для строки подключения.

Всё успешно стало проходить, успешно выполняться.
6 фев 12, 12:33    [12039446]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить