问题
How can I force my ASP.Net application to connect to a SQL Server using TCP/IP, not Named Pipes?
I read somewhere putting "tcp:" in front of the server name in the connectionstring should do the trick, but it does not seem to change anything.
Edit1:
- TCP/IP is enabled on the SQL Server.
- I tried Network Library=dbmssocn in the connectionstring, I still get an errormessage about named pipes: "provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server"
Edit2:
- Turns out my problem was another hidden connectionstring used by entity framework
回答1:
You can force it in the connection string:
server=tcp:hostname
Via: http://weblogs.asp.net/jgalloway/archive/2007/02/24/sql-force-the-protocol-tcp-named-pipes-etc-in-your-connection-string.aspx
回答2:
Use the SQL Server Configuration Manager on the client and disable the client protocols you don't want it to use.
回答3:
It depends how you're connecting to the database, but this should give the information you need.
回答4:
Just to add a quick hint, could cause issues, if you need to specify a port, do it after the IP address, and use a comma, not a colon.
来源:https://stackoverflow.com/questions/983605/forcing-asp-net-to-use-tcp-ip-to-connect-to-sql-server-instead-of-named-pipes