Database Application giving error on client PC - c#

i made an app on c# which has database connection and application works fine on my developement pc!
Application starts fine and everything else works fine which has nothing to do with DB but it throw an error when i try to execute query ?
I have Dotnetfx 2.0 installed on target machine what do i need to? Sql server?
Error is:
An error has occured 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
p.s. its my first db application =S

SQL Server is a completely separate application from the application you wrote and are distributing. If your application does not connect to an existing SQL Server running somewhere on the network you will have to install and configure SQL Server as part of your application's installation.
In addition you will either need to install / create a database as part of your application's installation, or else your application needs to be able to detect the absence of the database and build it itself on first startup.

As Marek said, the connection string is the most likely culprit, and I believe on SQL 2008 you have to explicitly allow TCP connections via:
SQL Server Configuration manager
Select SQL Server Network
Configuration Select Protocols for your instance
Right click on TCP/IP and "Enable"

Make sure your connection string looks something like this:
"Server=(local)\\SQLEXPRESS;Database=Your_DB_Name_Here;uid=sa;pwd=password;"

Related

When I install my C# app on another PC, the database doesn't work

I created a set up file and attached the database using SQL Server Express 2008,
but when I run the app, I get this error:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server cannot be found or cannot be accessed.
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 the specified server / instance)
I think it's the data source - is there anyway I can make my data source flexible?
Here is my data source :
SqlConnection cnx = new SqlConnection(#"Data Source=.\OSSAMA;Initial Catalog=assurance_stage;Persist Security Info=True;User ID=sa;Password=2041925");
you need to communicate SQL server with your local IP and port number 1433 or whatever port using and make sure your computer connected to the local network.
refer this issue How to connect to SQL Server from another computer?
There is a workaround to check if your Database is accessible on your target machine
Create a text file and change its extension to .udl and double click it, it would be something like
Put your credentials and test the connection, most of the times the DB is not accessible from the target machine, you may check if firewall is allowing the connection to DB

Failed to connect to azure sql database with connection string [duplicate]

I'm very frustrated. I have a website running on Visual Web Developer 2008 Express with my local database, everything works great. I also have the same web site running on a production server. Everything was working great but tonight I did a "reset" on production.
I deleted a couple of table, re-created them and inserted data. Everything was ok at this time.
I deleted ALL the files via the FTP.
I used the module called "Copy website" in visual studio and copy the site to the website via FTP.
When I log on my website, here is the error I got:
Server Error in '/' Application.
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)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: 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)
Nothing has changed related to SQL connection, this is OLD code that I always used.
My website is completely paralysed because of this and I feel sick inside because I feel there is nothing I can do.
Can anyone help me please?
Your connection string was probably overriden when you copied your new website version on the server. Please check the connection string in web.config and see if it is valid.
If you are connecting from Windows Machine A to Windows Machine B (server with SQL Server installed) and are getting this error, you need to do the following:
On Machine B:
Turn on the Windows service called "SQL Server Browser" and start the service
In Windows Firewall:
enable incoming port UDP 1434 (in case SQL Server Management Studio on machine A is connecting or a program on machine A is connecting)
enable incoming port TCP 1433 (in case there is a telnet connection)
In SQL Server Configuration Manager:
enable TCP/IP protocol for port 1433
I've resolved the issue. It was due to the SQL browser service.
Solution to such problem is one among below -
Check the spelling of the SQL Server instance name that is specified in the connection string.
Use the SQL Server Surface Area Configuration tool to enable SQL Server to accept remote connections over the TCP or named pipes protocols. For more information about the SQL Server Surface Area Configuration Tool, see Surface Area Configuration for Services and Connections.
Make sure that you have configured the firewall on the server instance of SQL Server to open ports for SQL Server and the SQL Server Browser port (UDP 1434).
Make sure that the SQL Server Browser service is started on the server.
link - http://www.microsoft.com/products/ee/transform.aspx?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=-1
check forthe followings :
Make sure your database engine is configured to accept remote connections
• Start > All Programs > SQL Server 2005 > Configuration Tools > SQL Server Surface Area Configuration
• Click on Surface Area Configuration for Services and Connections
• Select the instance that is having a problem > Database Engine > Remote Connections
• Enable local and remote connections
• Restart instance
Check the SQL Server service account
• If you are not using a domain account as a service account (for example if you are using NETWORK SERVICE), you may want to switch this first before proceeding
If you are using a named SQL Server instance, make sure you are using that instance name in your connection strings in your ASweb P.NET application
• Usually the format needed to specify the database server is machinename\instancename
• Check your connection string as well
the cause is that SQL SERVER is stopped from services.msc
a solution for this problem could be starting SQL SERVER from services.msc
I recently had this problem and it ended up being a port issue. My production SQL Server was set up at to be port 1427 instead 1433.
Just change the connection string to be
...data source=MySQLServerName,1427;initial catalog=MyDBName...
Hope this helps anyone who might be seeing this same issue.
I had the same problem with SQL Server 2008 R2 and when I checked "SQL Server Configuration Manager" My SQL Server instance had Stopped. Right Clicking and Starting the Instance solved the issue.
we have to enable TCP/IP property in sql server configuration manager
If your server was working and suddenly started erroring out, your server/instance stopped and connection settings were changed somehow.
For SQL Server 2008 here is how you can fit this:
Goto Start > All Programs > SQL Server 2008 > Configuration Tools > SQL Server Configuration Manager > SQL Server Services.
And here you'll see all the instances and their state.
The state of the instance you were trying to connect can be stopped here.
Double click on the instance and then click on connect.
It will connect and now go back and run your application, you will be able to connect with no error.
This solution assumes the error is not being caused by something wrong in your connection string.
In my case it was a very silly error. I was using a library to read the connection string out of a config file, and I forgot to double back slash.
For example I had:
localhost\sqlexpress which was read as localhostsqlexpress
when I should rather have had
localhost\\sqlexpress note the \
I had same problem regarding that i.e A network-related or instance-specific error occurred while establishing a connection to SQL Server.
I was using SQL Server 2005 (.\sqlexpress)` and worked fine but suddenly services stopped and gave me error.
I solved it like this,
Start -> Search Box - > Sql Configuration Manager -> SQL Server 2005 Services >and just Change Your SQL Server (SQLEXPRESS) State to Running by right clicking that service Sate.
I solved this issue by running the following command in an elevated command prompt as specified in this post.
net start mssqlserver
I had the same problem but found that it was because the password for my Service Account for the Database Engine had expired. The solution was to login to that account, fix this, then set the account so password never expires.
My remote sql server was expecting connection at a different port and not on the default 1443.
The solution was to add a "," after your sql server IP and then add your port like so 129.0.0.1,2995 (Check the " , " after server IP)
Please find the image for reference below.
I had the same error, and it turned out .NET created a database on localhost which I wasn't aware of. When I tried to get the site live it didn't create the database, so the code was pointing to a database that was non existent.
Hopefully this might help some other people out trying to troubleshoot.

Can't connect to SQL Server database from Local IIS over HTTPS

I'm working on an application using ASP.NET MVC5 and connecting to my SQL Server database with SqlClient (Dapper.NET)
I've been using Local IIS without a problem on http://localhost:port/ but now I have switched over to HTTPS (self-signed key), with a binding of https://www.mysite.com and the hosts file is redirecting that URL to 127.0.0.1
The problem that I am having is the following:
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The specified data could not be decrypted.\r\n)
This is happening when I am attempting to connect to my SQL Server database with the standard connection.Open() call.
I've read around about people suggesting to restart the IIS server, or to reconfigure the SQL Server database to have encryption forced off. I've checked both of these, but that doesn't resolve the problem.
Can anyone shed some light on what might be going wrong here?
I know why this is...
It's a component available via NuGet called NCrypt which I've just spent 6 hours isolating.
I'm not sure how, but when it's present in my bin folder it interferes somehow with the handshake process between the code and SQL Server.
When it's removed, voila! SQL connects as expected.

IIS / SQL Server connection error

I am doing a sample code and I got stucked in a really strange behavior, I am trying to connect to a SQL Server using this connection string
"Data Source=" + ServerName + "." + DomainName + ";Initial Catalog="+DBName+";Integrated Security = false;Persist Security Info=false;User ID=sa;Password=" & Mypassword & ";Connection Timeout=90"
Apparently I am not using Windows Integrated Authentication or (SSPI), when I use this on the web application I get this error:
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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Just to note I created a .Net application that uses the same connection string and is running from the computer where the IIS resides and it works fine.
Here are the steps I have done:
I checked the SQL client configuration I opened it and enabled both of the protocol tcp and Named pipes.
I did impersonation on the IIS and used windows authentication and made sure that the IIS is working with the same credentials as mine.
I used Wireshark to see wut is the difference between the two connections and I couldn't understand the output however it seems that from the IIS it always tries to use windows authentication although I have clearly made the string such that it doesn't use windows authentication basically wut happens is that some negotiation in the beginning of the connection that seems the same from both application "not_defined_in_RFC4178#please_ignore" and then the IIS goes always to NTLMSSP noting the my user doesn't have access to the database except through user name and password so the negotiation fails with IIS while it succeeds normally from the application.
My question is how may I fix this, I kind of assume that there is some configuration that mandates that any SQL client from IIS uses windows authentication but I can't know where or how to disable it
I note I am not using web.config configuration for the SQL Server connection string and this issue happens with IIS7.
Here are the first things I would check:
Verify the Application pool user has rights to access network resources
Since you stated it works when you are logged into the machine, try changing the application pool user to the user with which you log into the machine.
Check if you have impersonation enabled in your web.config. If you do, make sure that user can access network resources.
Try changing the connection string to use an IP address (as a test). If that fixes the issue, maybe it is some sort of DNS problem.
Make sure you include a ,1433 at the end of the IP Address
Set Network Library=DBMSSOCN in your connection string. (See this article on ConnectionStrings.com for more info.)
If you have typed exact connection string as above, please check changing & around Password in connection string to +.
The connection string written above is not valid string at all since string can be concatenate another string using + not using & in C# as I know.
Aside from what the others have indicated, the only other time I recall the error message specifically with "Named Pipes" reference was based on how SQL-Server is setup.
To confirm, I went into my version of SQL Server Configuration Manager. Then, looked at the
"SQL Native Client 11.0 Configuration" (just in case, did for both 32-bit and 64-bit) and opened to show "Client Protocols". Within that it shows options for Shared Memory, TCP/IP and Named Pipes. Make sure your "Named Pipes" protocol is enabled.
You mention that SQL Server is on another machine. You should make sure the SQL Server Browser service on that machine running.
You will find it in the Windows Services management console (as well as other locations).
In addition, you will have to make sure UDP port 1434 is open in the firewall.
Check this first:
Make sure that you sql server accept remote connections
Sql Server Instance ->Properities->Connections->Allow remore connections.
following this step in second:
Try setting up a connection in VS with the Server Explorer pane:
1) Open Server Explorer.
2) Right click "Data connections" and select "Add connection"
3) In the dialog that follows, select your DataSource, and database, specify the security info, and press the "Test connection" button.
4) When the connection works, press "OK"
5) highlight your database in the Server Explorer pane, and look at the Properties pane. A working example of the connection string will be shown, which you can copy and paste into your app or config file.
Check the values of ServerName, DomainName, DBName & MyPassword.
Are they correct ??
How they populate?
Let us check into the steps to resolve this error.
1) SQL Server should be up and running.
2) Enable TCP/IP in SQL Server Configuration
3) Open Port in Windows Firewall
4) Enable Remote Connection
5) Enable SQL Server Browser Service
6) Create exception of sqlbrowser.exe in Firewall
7) Recreate Alias
Source here
Hope it helps
may be the SQL server was not recognized by client system
because the error occurred due to sql server network not available and also it may be some error for network failure

Using LINQ changing database from SQL Server 2008 R2 to SQL Server 2008

I've completed my webpage on my home computer and ready to upload it.
However I'm getting this error:
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: Named Pipes
Provider, error: 40 - Could not open a
connection to SQL Server)
I know the connection string is correct. And I run a few different pages so I can connect to the other databases without problem.
This is the fist time I have used LINQ and I thought perhaps there was a setting it made that I need to change? LINQ is used in my DAL which is separate to the database, its just stored as DLLs in my bin folder...
My development server uses SQL Server 2008 R2 Express and my live server uses SQL Server 2008
I created database scripts to create the database. so I just ran them to downgrade the webpage.
Also In my DAL I just do this:
AHDBcontext db = new AHDBcontext(connectionstring);
var whatever = from s in suppliers
select s;
I always set connection string from the web.config file.
Any ideas?
Check the connection string.
Another way is following.
Go to Start Up => Microsoft Sql server 2008 => Configuratiuon Tools => Sql Server Configuration Manager
Check the Enabled status for client protocol.
restart the Browsing and other necessary services.

Categories

Resources