Using named instance in connection string - asp.net

I want to upload my DNN site in customer's host, they use SQL Server 2005 and they use named instance, how can I use named space in connection string ?!
<add key="SiteSqlServer"
value="Data Source=79.175.164.226,2005; Initial Catalog=jdmedu; User ID=; Password=;" />
DNN shows database connection error.

Can you check that you can construct ODBC Connections to the DB (outside of your application).
I Suspected that, the problem is in the Configuration of the DB Instance and it can be solved from the SQL Server Configuration Manager.
Also, can you check
http://www.connectionstrings.com/sqlconnection/connect-via-an-ip-address/
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;
Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

Related

Connection strings LocalDB in ASP.NET WebForms Visual Studio

I use ASP.NET sample application using by Microsoft: WingtipToys.
It uses LocalDB.
Which is the difference about connection strings?
<add name="DefaultConnection"
connectionString="Data Source=(LocalDB)\V11.0;Initial Catalog=aspnet-WingtipToys;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WingtipToys-20131223105750.mdf;Initial Catalog=aspnet-WingtipToys-20131223105750;Integrated Security=True"
providerName="System.Data.SqlClient" />
I get error connection using Data Source=(LocalDB)\V11.0;Initial Catalog=aspnet-WingtipToys;Integrated Security=True
sqlocaldb.exe command:
C:\Users\Espinete>sqllocaldb.exe v
Microsoft SQL Server 2012 (11.0.3156.0)
Microsoft SQL Server 2014 (12.0.2000.8)
Microsoft SQL Server 2016 Release Candidate 0 (RC0) (13.0.1100.286)
C:\Users\Espinete>sqllocaldb.exe i
MSSQLLocalDB
Projects
ProjectsV13
v11.0
First, LocalDB connection strings usually has database file naming convention using unique number suffix with this format:
aspnet-[project name]-yyyyMMddHHmmss.mdf
The unique number suffix represents database creation date & time stamp at nearly same time as project creation time.
By default, when creating a LocalDB database file which not defined in any SQL Server instance, the connection string in web.config uses AttachDBFileName setting. The difference between AttachDBFileName & Initial Catalog setting as described in Common Connection String Settings is there:
AttachDbFileName
This setting specifies the path and name of the database file for SQL
Server Express or LocalDB databases that are not defined in the local
SQL Server Express instance. This setting is typically used for database files that you keep in the App_Data folder.
Initial Catalog
This setting specifies the name of the database in the SQL Server
instance catalog. In LocalDB connection strings, the Visual Studio web project templates add a unique number as a suffix to both the file name and the Initial Catalog setting. The reason for this is to avoid database name collisions in the SQL Server Express LocalDB instance.
From descriptions above, the first connection string certainly doesn't work because LocalDB doesn't know which database file should be attached into its instance. To use Initial Catalog without AttachDBFileName setting you need to attach created LocalDB database in an SQL Server instance (either using SSMS or sqlcmd command line utility to create DB catalog).
Difference summary between first and second connection string:
Initial Catalog without AttachDBFileName => trying to connect using already attached database name defined in SQL Server instance catalog.
Initial Catalog with AttachDBFileName => trying to attach manually & connect using database MDF file inside App_Data directory with Initial Catalog set to attached database file name in LocalDB instance.
NB: sqllocaldb.exe v command lists all installed LocalDB versions in your machine, where sqllocaldb.exe i lists all shared existing LocalDB instances (more info in SqlLocalDB.exe docs).
Additional reference:
SqlConnection.ConnectionString Property (MSDN)

Create database on Azure using Entiitty Framework

I want to create ASP.NET MVC app using database on Azure. I have already written model classes for database. But how can attach this database or tables on azure?? It's connections string for my already created DB, which i want to use.
<add name="AccomodationContext" connectionString="Server=tcp:student-docs.database.windows.net,1433;Database=docDb;User ID={username};Password={password};Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />
It's empty, I would like to use it to has a tables created from my model classes, or create a new database. But I can't find, how should look correct connection string. I know that for LocalDB there is 'AttachDbFilename' in connection string.
You should have a connection called DefaultConnection in your web.config that you can place your connections string in.
You can get the actual connection string directly from your Azure portal.

web.config connection string to different database server

I have two conn strings in my web.config
The second of them connects to external database - the database is on different server than the current website.
Is it possible?
How do I write my connection string?
I have this now:
<add name="newConn" connectionString="server=www.somedomain.com;database=dbname;user id=dbuser;password=dbpass" providerName="MySql.Data.MySqlClient" />
But I'm getting error saying:
Access denied for user 'dbuser'#'currentdnsserver.com' (using password: YES)
Thanks
You have 2 questions:
Answers:
1. Absolutely.
2. You will need to write a connection string that use TCP/IP as the transport.
To debug this you should try connecting via the SQL Server Mgmt Studio using the credentials you are using in the conn string.
I assume you are using SQL Server, here is a typical connection string to a TCP/IP enabled DBMS using SQL Server authentication.
<add name="conn2" connectionString="Database=myDB;Server=serverNameOrIpAddress;uid=id;pwd=pwd;" providerName="System.Data.SqlClient"/>
The connection I wanted to establish was between different hosting server (one on Windows, another on Linux).
My hosting provider told me it's not possible to connecto from Windows .NET website to Linux MySQL db. Not sure why but not possible.
Would be possible on the same hosting they said.
Thank you for trying to help #T McKeown
Yes, you can connect to remote server and this is used alot.
The main thing that you should edit in your connection string is: Data Source.
Example:
Data Source=192.166.0.2;initial catalog=books;integrated security=False;user id=admin;password=!password1
Data Source: IP or URL of the computer you want to connect
Initial Catalog: Name of the Database you want to use
UserName and Password for the database user you want to use when you working with
the database are required.

MVC 3 ASPNETDB.MDF SqlExpress Database Connection String on Web Hosting

I think this is more of a connection string issue that MVC 3, so sorry in advance.
I've created a website in MVC 3 with the default database that is created when you register a new user. It works fine local but not on my web hosting where I receive the following 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: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
The default connection strings are:
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
<add name="ASPNETDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
Should I specify a connection string with an explicit IP address of the server or retain the .\SQLEXPRESS command? If I need to specify a username and password then what should I use? I've never used a local SQLExpress database before so I'm clueless (which I'm sure is apparent).
If you cannot use SQL Express, then you could consider an embedded SQL Engine:
SQL Compact Edition or SQLLite
I've never used SQL CE, but SQLLite is just a single DLL.
Obviously you don't have all the features of a fully fledged database engine, but they are still pretty powerful.
Generally you will need use a connection string with a specific IP Address, Username, Password, etc.
Who are you hosting with? Generally a .net host provider will give you the connection string to use to connect to your database. You can copy and paste in to you web.config. Also, when they create the database for you, they generally specify the username, password, and database name so you will have to change all of that.
This is visual studio has Web.config.debug and Web.config.Release with the xml transformations. This way when you publish to the site, the connection string is automatically changed from your local connection string to the connection string used in your production environment.
You probably need to follow this article?
http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs
Deafault ".net" installs Application Services to "AttachDBFilename=|DataDirectory|aspnetdb.mdf"
Then you create your own DB and now you're using two DB's to store data that could just be in one.
If you read the above article it shows you how to combine everything into one DB.
When you deploy to the hosting server (and it has a limit on how many DB's you can use or isn't even running sqlexpress) neither DB attach. So you need to make a "transform file" for your web.config file (usually Debug and Release) which is basically another web.config but only with the lines of config in that you need to change when the site is deployed to the hosting server.
So your hosting provider will give you the details needed for the connection string on the server. You then put that in the "web.config.release" file and when you compile and publish the "release" version of your site you will get a web.config file that has the correct connection string data in.

working with sql server 2008

I am not used to work with SQL Server(usually I just use express). I run it on windows server 2008, iis7.
I have attached the database to my sql server. I made a web site in iis7 but I get this error message.
Cannot open database "Phaeton.mdf" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\NETWORK SERVICE'.
Connectionstring I use
<add key="PhaetonConnectionString" value="Data Source=.;Initial Catalog=Phaeton.mdf;Integrated Security=True"/>
Thanks
Since you are using Integrated Security the SQL connection will use the windows identity which is passed from ASP.NET.
You can either change your security to mixed-mode which will involve removing the integrated security. Or use impersonation (check IIS and your web.config) and grant that user access to the database.
Hope that helps
You need to configure your application in IIS to turn off anonymous access and turn on Windows authentication(If yoy want to use integrated security).
Access SQL Server Using Windows Integrated Security
The other way, you can use a connection string with user/password ... with the appropriate login
Problem was that the database I tried to attach was sql express
The problem is here:
Initial Catalog=Phaeton.mdf
In SQL Server Express, you can attach a filename as a local database. That's not how it works on a production SQL Server. In non-Express versions you attach a database permanently, which it looks like you've already done, and you give it a logical name, which is not the same as the primary file name.
I would guess that if the file name was "Phaeton.mdf" then you probably named the database "Phaeton". In which case that part of the connection string should simply be:
Initial Catalog=Phaeton
If that's not the right name, you can get a list of database names from the server using the following script:
USE master;
SELECT name FROM sys.databases

Resources