Connection string not working on remote server - c#

I am working on a C# ASP.NET website that needs to connect to a database. I have all the connection strings set up and they work locally, but when I try to connect from the server I get an error that looks like this
[Win32Exception (0x80004005): Access is denied]
[SqlException (0x80131904): 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
The connection string:
<add name="Default" connectionString="Server=server;Database=database;User ID=user;Password=pass;" providerName="System.Data.SqlClient"/>
Would the app pool identity block the connection even when the username and password are supplied directly?
EDIT: There seems to be confusion about what my problem actually is. I can connect to the SQL server with the same connection string from my local ASP Development server just fine. The only issue is that I cannot connect to the SQL server from the production ASP server.

You connections pool is not the problem -- you have a basic connectivity issue
You may have a bad connection string -- everything must be typed correctly -- you did not supply your actual credentials -- presumably for good reasons, unless this is your actual connection string, in which case you need to fix it with your correct connection settings)
You may be port blocked by a firewall whether personal, corporate, ISP, etc.
The DB may not be accepting network connections
The DB server may not be running
McAfee A/V has been known to cause problem.
I'm sure I have overlooked a few possible problems.

Related

Entity Framework cannot connect to Database via Azure Hybrid connection

I'm currently working on an API, to access data from a SQL Server that is hosted locally. My app is being hosted through an Azure web app. I'm also using Entity Framework 6 in my application to access data. Since my data can't be in the cloud, I created an Azure Hybrid connection to create a relay to my SQL Server.
However, I keep running into this error (see below). I don't understand why this happens. I have checked my firewall rules to make sure that connections from Azure are being permitted. I have also verified that my connection string is correct and that I'm using the right port number. I also verified that remote connections are allowed on the SQL Server.
In case anybody is wondering I'm running SQL Server 2012. Does anyone have a fix for this issue? I would really appreciate it.
Thanks in advance.
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.

Entity Framework: Seemingly random SQL Server connection error

I have an application using Entity Framework (database first) on top of a SQL Server database. The application is configured with default settings, like I've built all of my applications for the past couple of years.
However, with this particular application, when running on my windows server, I'm getting the following error now and then (quite often):
Exception message: 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).
The issue never occurs when the application is running locally through Visual Studio (connecting to the same remote SQL Server).
I know for certain that there is no error in the connection string, because as I said, the issue only happens sometimes. Other times it works just fint.
Furthermore, if I copy the entire web.config from the application running on my web server and paste it into my local development environment, it works just fine.
I thought it might be my webserver that was having issues accessing the SQL Server; but the other applications running on the same webserver, accessing the same SQL Server, are all working just fine.
I simply can't figure out what can be causing this, as Ive never experienced anything like it. What am I missing? What should I be looking for?
My connection string:
<add name="MyDbEntities"
connectionString="metadata=res://*/Model.MyModel.csdl|res://*/Model.MyModel.ssdl|res://*/Model.MyModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MyServer\MyInstance;initial catalog=MyDb;integrated security=False;User ID=MyUser;Password=MyPassword;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
As it turns out, the issues were caused by my Owin context. As I don't use the ApplicationUserManager part of owin (I have my own custom tables for authentication), I do not need Owin to set it up for me. However, because I had the following code in my Startup.Auth, owin would try to connect to the DefaultConnection whenever the session expired:
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
I simply commented out the above (note: I can only do this, because my application does not use the ApplicationUser tables in the database), and it works.

Windows service network error

I have made a windows service and through that service I am doing operations on the database. The machine that I have installed the service is in India and the server is in Singapore. When this service runs I get an error such as
" 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: TCP
Provider, error: 0 - No connection could be made because the target
machine actively refused it.) "
I have a connection string such as
return "server=122.0.122.222,5222;database=ABCD;user id=abc101;password=xyz";
this is in a function that is returning a string. I am catching this string in another string and passing it to the connection object.M I doing anything wrong here.?
But I have tested this service at my house. It works just fine. But when deployed at clients end I get the above error. Any idea why this mite be happening.? Is it related to internet connection but the internet connection is fine. DO I have to give some permissions from my service to make a connection or the IT team of the client should have to give some permissions at their end.?
Please help.
Thanks In advance

Connecting to a specific SQL Server instance on another machine

I'm trying to connect to a SQL Server 2008 R2 Express database using a Linq DataContext. The database engine is running on another machine in the local network. We are using SQL authentication, for the time being. SQL Server is set up to allow remote connections.
My connection string looks like this, and works fine. I haven't specified the instance, but it's the only one, so I guess it is chosen by default:
Data Source=192.168.1.50;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;
I've installed the same engine locally too, and this connection string works too:
Data Source=localhost;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;
So does this one, connecting locally:
Data Source=.\SQLEXPRESS;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;
So what if there are multiple instances of the engine running on a remote computer, and I want to specifically refer to an instance?
Data Source=192.168.1.50\SQLEXPRESS;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;
The above connection string yields
Error connecting to database: A network-related or instance-specific error occur
red while establishing a connection to SQL Server. The server was not found or w
as not accessible. Verify that the instance name is correct and that SQL Server
is configured to allow remote connections. (provider: SQL Network Interfaces, er
ror: 26 - Error Locating Server/Instance Specified)
Why doesn't this work? I can't find any examples of a connection string connecting to a particular instance on a remote database engine.
Try this connection string for remote connection:
Data Source=192.168.1.50\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;
Port 1433 should be opened if firewall is used.
And also try to enable remote connection to DbName in sql server management studio.
Even with an IP address, you must specify the instance name.
Aka,
Data Source=192.168.1.50\SQLEXPRESS
is your best candidate there.
Firewalls. You may have to open the PORT NUMBER. But more importantly, you may have to open up the program name.
Note this article:
http://technet.microsoft.com/en-us/library/ms175043.aspx
Note this area in the article:
In the Program dialog box, select This program path. Click Browse, and navigate to the instance of SQL Server that you want to access through the firewall, and then click Open. By default, SQL Server is at C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe. Click Next.
ALSO:
I like to use this program to "ping" my machine and port. Emphasis on the "and the port".
http://www.microsoft.com/en-us/download/details.aspx?id=24009
I keep that little tool around for doing basic debugging with connection issues.

ASP.NET Web application failed after bringing to test server

I am using VS2005 ASP.NET 2.0.
I have a web application which uses Active Directory Connection.
The application is able to run smoothly on my local machine, including logging in.
However, when I brought my web application to my test server, I am not able to log in and it gave me an error which says
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)
What is happening? Is it because the AD I am connecting to does not allow remote connection? I am able to log in when I am on my local machine though.
EDIT:
I am able to connect to the SQL server.
I inserted the following code on my login page_load and there's no error
SqlConnection thisConnection = new SqlConnection("Data Source=<IP>;Initial Catalog=<database>;User ID=<username>;Password=<password>");
SqlCommand nonqueryCommand = thisConnection.CreateCommand();
thisConnection.Open();
thisConnection.Close();
Thus the error is most likely caused by the AD connection string. Looking for suggestions or solutions.
A database connection string you are using is either incorrect or the database you are attempting to connect to is not accessible.
If you are defining your connection strings in the web.config file, ensure these are relevant for the test environment you have deployed to.

Categories

Resources