12

I have had difficulty creating a connection string in c# that will connect to a remote SQL server using a public IP, named instance and a port number (other than 1433). Anyone know how to do that?

1

5 Answers 5

25

Try this, replacing 666 with the port number you want to use, 190.190.200.100 with the IP address you want, etc.:

Data Source=190.190.200.100\MyInstance,666;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
Sign up to request clarification or add additional context in comments.

1 Comment

Is it necesary Network Library=DBMSSOCN;? @RedFilter
7

Using the servername tcp:<public IP>,<port>, as documented in SqlConnection.ConnectionString:

The name or network address of the instance of SQL Server to which to connect. The port number can be specified after the server name:

server=tcp:servername, portnumber

When specifying a local instance, always use (local). To force a protocol, add one of the following prefixes:

np:(local), tcp:(local), lpc:(local)

Data Source must use the TCP format or the Named Pipes format.

TCP format is as follows:

  • tcp:<host name>\<instance name>
  • tcp:<host name>,<TCP/IP port number>

If you use the tcp:<host name>\<isntance name> the SQL Browser service connection is required (port 1433) therefore is better to use the later format, with explicit port name:

Data Source=tcp:1.2.3.4,1234;User Id=...; Password=...

Comments

1

This site has never failed me.

And i am gonna state the obvious here, but it is generally a bad idea to expose your sql server on the internet.. (unless you are using VPN)

Comments

0
connectionString="Database=pub;Server=192.168.1.1\INSTANCE,1746;Trusted_Connection=yes;"

Or you could use username/password instead of trusted connection.

2 Comments

Not sure about a local IP but if you try this it will not work with a public IP.
Yes, you would have to change the IP address, if you can resolve ip address it should work, I have done it in the past.
0

Something like the below, add the port number after the IP or domain name with comma.

<add name="LocalSqlServer" connectionString="Data Source=www.yourdomain.com,1433;Initial Catalog=mydatabase;Persist Security Info=True;User ID=admin;Password=yourstringpassword" providerName="System.Data.SqlClient" />

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.