• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

S31S3R

SQL Server does not allow remot connections

11 mensagens neste tópico

Boa noite.

Estou a dar os meus primeiros pasos em VB e estou a utilizar o Visual basic 2008 express para fazer um projecto.

Estou com um problema no que toca na altura de fazer uma ligação á base de dados (SQL Server express 2008).

A string de conexão que utilizo é a seguinte:

    'Public DB As New SqlClient.SqlConnection( _
    '"Data Source=.\SQLEXPRESS;" & _
    '"AttachDbFilename=|DataDirectory|\app1.mdf;" & _
    '"Integrated Security=True;" & _
    '"Connect Timeout=10;" _
    ')

No meu pc funciona tudo bem, mas quando exprimento o programa noutro pc não consigo fazer a ligação e surge este erro:

Unhandled exception has ocurred in your application. If you click Continue, the application will ignore this error and attempt to continue. if you click Quit, the aplication will close immediately.

An error has occurred while establishing a connection to the server. When connecting to SQL Srver 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remot connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified).

Details:

See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************

System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

  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 app1.frmForm1.frmForm1_Load(Object sender, EventArgs e) in D:\Users\me\Vbprojects\app1\app1\frmForm1.vb:line 17

  at System.Windows.Forms.Form.OnLoad(EventArgs e)

  at System.Windows.Forms.Form.OnCreateControl()

  at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

  at System.Windows.Forms.Control.CreateControl()

  at System.Windows.Forms.Control.WmShowWindow(Message& m)

  at System.Windows.Forms.Control.WndProc(Message& m)

  at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

  at System.Windows.Forms.ContainerControl.WndProc(Message& m)

  at System.Windows.Forms.Form.WmShowWindow(Message& m)

  at System.Windows.Forms.Form.WndProc(Message& m)

  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

  at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************

mscorlib

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

----------------------------------------

app1

    Assembly Version: 1.0.0.0

    Win32 Version: 1.0.0.0

    CodeBase: file:///E:/app1/app1/bin/Release/app1.exe

----------------------------------------

Microsoft.VisualBasic

    Assembly Version: 8.0.0.0

    Win32 Version: 8.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll

----------------------------------------

System

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Windows.Forms

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System.Drawing

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System.Runtime.Remoting

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll

----------------------------------------

System.Data

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll

----------------------------------------

System.Xml

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Configuration

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

----------------------------------------

System.Transactions

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll

----------------------------------------

System.EnterpriseServices

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll

----------------------------------------

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

For example:

<configuration>

    <system.windows.forms jitDebugging="true" />

</configuration>

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

Obrigado pela auda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No meu pc funciona tudo bem, mas quando exprimento o programa noutro pc não consigo fazer a ligação e surge

Olá,

Uma pergunta: e o outro pc tem o sql server instalado ?

O sql server não pode ser copiado e utilizado em outro pc. Ele precisa de um servidor (que tem um serviço a funcionar) para poder trabalhar.

Caso não esteja pode descarregar uma versão gratuita no site da microsoft e instalar na outra máquina.

De qualquer modo, e de pois de instalado e com a base de dados a correr, a connection string é diferente. A AttachDbFilename funciona apenas no desenvolvimento e a connection string final deve indicar outro dados. Veja alguns exemplos em: http://www.connectionstrings.com/?carrier=sqlserver2008

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A minha intenção é utilizar esta aplicaçao com uma base de dados de Sql Server sem ser necessária qualquer tipo de instalação do Sql Server no pc onde a aplicação corre.

Pelo que percebi o SQL Server Express é o indicado para isso.

De qualquer das formas vou seguir o teu conselho e vou mudar a string de conexão para:

    Public DB As New SqlClient.SqlConnection( _
"Server=.\SQLExpress;" & _
    "AttachDbFilename=|DataDirectory|\mydb.mdf;" & _
    "Database=mydb;" & _
    "Trusted_Connection=Yes;" & _
    "Connect Timeout=10;" _
    )

para ver o que dá.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Tens que instalar em todos os pcs clientes.

Negativo. Basta instalar num pc e partilhar através da rede.

De qualquer das formas vou seguir o teu conselho e vou mudar a string de conexão para:

AttachDbFilename é, como já te disse, para a máquina de desenvolvimento e não para a máquina que vai funcionar como servidor.

O exemplo de uma connection string é assim:

"Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername; Pwd=myPassword;"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quer dizer que para a aplicação funcionar a 100% tem de haver uma instalação do Sql Server no pc do cliente?

Se for assim, mais vale ficar-me por uma .mdb do Acess. Este projecto do Visual Basic que estou a fazer deriva de um projecto meu em Acess.

o motivo porque decidi utilizar o SQL Expresss foi apenas pela diferença de capacidade entre uma Base de dados em Acess (2GB) contra os 4GB do SQL Epress.

Se calhar mais vale ficar-me por uma .mdb.

AttachDbFilename é, como já te disse, para a máquina de desenvolvimento e não para a máquina que vai funcionar como servidor.

O exemplo de uma connection string é assim:

"Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername; Pwd=myPassword;"

Não sabia... Mas ainda tenho uma dúvida. Quer dizer que não posso distribuir a minha aplicação com uma base de dados própria?

se calhar percebi tudo mal do que li no site da microsoft... :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então tens de instalar e utilizar uma connection string como aquela que te mostrei.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nas configurações do sql express está com o tick no Accept Remote connections ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelo esclarecimento. Fiz uma idéia completamente errada do sql express. Prefiro utilizar uma base de dados do access.

Tenho mais experiência na utilização do MySql e sinceramente não consigo encontrar motivos suficientes para trocar o MySql por outro tipo de base de dodos. Neste caso, prefiro utilizar o Access porque assim não tenho de instalar nenhum tipo de base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora