11

I have created a C# application which uses a SQL Server database. I have other computers connected to me and to each other in a workgroup. I have shared my C# application with others. When they open the application they get the error

A network related or instance-specific error occured while establishing a connection to SQL Server. the server was not found or was not accessible

But the application is working fine on my PC. The connection string I am using is

Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159

which is stored in a .config file.

The application is working fine on my PC. What must I do? I have enabled the TCP/IP in the server but the same error persists. Some change in connection string or something else?

3
  • 1
    try using the IP address for 'data source' Aug 24 '13 at 10:08
  • 1
    Try to Turn Off Windows Firewall...also check technet.microsoft.com/en-us/library/hh231672.aspx .This should work for you.
    – Kishan Gajjar
    Aug 24 '13 at 11:47
  • 3
    Turning off Windows Firewall is not required -- please stop propagating that myth! See my answer below.
    – Jon Seigel
    Jan 21 '14 at 20:03
18

There are two levels of security that need to be changed in order to allow remote access.

  1. SQL Server configuration. By default in Express, Developer, and Enteprise Evaluation editions, connecting by the TCP/IP protocol is disabled. Enable this using SQL Server Configuration Manager.

  2. Windows Firewall. While disabling the firewall entirely will work for this component, doing so is not a security best-practice (nor is it required). (Note: in this section, I assume a default configuration. There are many settings that can be changed which affect these steps slightly.)

    There are two cases depending on the type of SQL Server instance you're connecting to:

    1. Default instance (connect by computer name only). Add an allow incoming rule either on TCP port 1433 or the database engine service.

    2. Named instance (connect by computer name + instance name). Add an allow incoming rule on UDP port 1434 to access to the SQL Browser service. Add an allow incoming rule on the database engine service.

This procedure is fully documented here, or you can watch me explain and then walk through the configuration for a named instance here.

0
0

You have to set the correct Network-Settings in your SQL-Server: Active TCP/IP in SQL-Server Also be sure, that your Server Browser-Service is running, because if it is stopped, you can't access the SQL-Server.

0

Be sure sqlbrowser service is turned on as mentioned by bendeg, and that UDP 1434 is open on your machine so clients can hit the sqlbrowser in order to resolve the name. Also open the named instance's TCP/IP port.

To find your instance's port, connect using the tcp: prefix in Management Studio like so: tcp:ASHISHPC1\SQLEXPRESS and the result of the query below should be the port you need to expose to the clients in your workgroup.

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID
-1

I turned the windows firewall off for Home Network and it worked fine.. Thank you all.. :)

1
  • 5
    If this was your question you should sign in here with the same credentials you used on the original site(Stack Overflow) so that you gain ownership of the question here.
    – jcolebrand
    Aug 27 '13 at 19:28
-1

Your SQL server must allow TCP/IP connections and you Windows Firewall must be turned off for Home Network. http://learnadvancecsharp.blogspot.in/2013/09/how-to-access-sql-server-database-from.html