how to deploy website with edmx - asp.net

i have just only added Edmx file inside *App_code* folder and it's mapped with database(sqlexpress). I am not using ADO.Net context DB generator. My website is working successfully in local pc but when website is hosted in IIS7 it is not running and can't connect to the database.
Please let me know how to set connection string so that my connection string identify sdl,msdl,msl? Please guide me if i missed anything. It would be better if you have sample website which is hosted in iis.
<add name="Entities1"
connectionString="metadata=res://*/App_Code.sSystem.csdl|res://*/App_Code.sSystem.ssdl|res://*/App_Code.sSystem.msl;provider=System.Data.SqlClient;provider connection string="Data Source=server111;Initial Catalog=inventory;Integrated Security=True; MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />

Try to use Data Source=localhost; instead of Data Source=server111; in your connection string.

Related

.NET 4.0 Table Adapter connection string issue

I have a weird issue occuring when using table adaper connection strings in a .net 4.0 web application.
I'm using the same connection string name with different server/credentials for the test
and production environments. I comment out the connection string that I'm not using(see example
below) I'm having an issue with the table adapter not using the current connection string that is uncommented in the web config file. For example, I make any changes against the test database using the test connection string. However, when I uncomment the production connection string(and comment the test connection string) and deploy to the production server, the test connection is still being used. Some of the connections are not defined in the code behind - some are grids that are bound to objectdatasources. Can anyone offer any advice on to fix this problem?
<!-- Test Conn -->
<add name="Connection1" connectionString="Data Source=server1; Initial Catalog=database1; User ID=username1; Password=password1" providerName="System.Data.SqlClient"/>
<!-- Production
<add name="Connection1" connectionString="Data Source=server2; Initial Catalog=database1;User ID=username2; Password=password2" providerName="System.Data.SqlClient"/>
-->
Try restarting IIS after you deploy.

How to set a proper connection string for Azure database?

I have an azure website and database. I'm running an ASP.NET MVC 4 / EF 5 app localy and trying to put some data to the azure database before to deploy the app. But I have a TargetInvocationException : {"The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588"}
Keyword not supported : server
This is the connection string that I get from my azure dashboard :
<add name="myconstring" connectionString=Server=tcp:myserver.database.windows.net,1433;Database=mydatabase;User ID=cdptest#myserver;Password=******;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.EntityClient" />
I tried this I got "Keyword not supported : data source"
<add name="myconstring" connectionString="Data Source=myserver.database.windows.net;Initilal Catalog=mydatabase;User ID=cdptest#myserver;Password=*****;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.EntityClient"/>
The following works for me:
<add name="coupdpoAPEkowswAEntities" connectionString="Server=tcp:myserver.database.windows.net,1433;Database=mydatabase;User ID=cdptest#myserver;Password=*****;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.EntityClient"/>
Use Server instead of Data Source, and specify the protocol and the port, and use Database instead of Initial Catalog
OK the providername was wrong. System.Data.SqlClient was excepted as this is a code first app model.
I probably got System.Data.EntityClient from another app with Model First or Database First...

Proper format for SQL Server Connection String on 1and1.com

I have spent several hours trying to search this on the web in addition to calling and emailing support at 1and1.com web hosting with no success.
I have ASP.NET pages which connect to MS SQL Server database using the entity framework. On my local machine, all works fine (naturally). However, when I modify the connection string in my web.config to point to my SQL Server database on 1and1.com, I get the following error:
"Unable to load the specified metadata resource."
Here's my current connection string (as defined in my web.config file):
<add name="TimeDataLicenseEntities"
providerName="System.Data.EntityClient"
connectionString="metadata=res://*/
Model1.csdl|res://*/
Model1.ssdl|res://*/
Model1.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=dbXXXX.db.1and1.com,1433;
Integrated Security=false;
initial catalog=database_name;
user id=dboXXXX;
password=valid_password;multipleactiveresultsets=True"" />
(Please note that where there are 'XXXX' the values are different in the actual config file as well as for 'database_name' and 'valid_password')
I'm using the Entity Framework in the code so I'd prefer solutions that correct the content of my web.config file.
Here is what ended up working for me:
<add name="TimeDataLicenseEntities"
providerName="System.Data.EntityClient"
connectionString="metadata=
res://<assemblyname>/Model1.csdl|
res://<assemblyname>/Model1.ssdl|
res://<assemblyname/Model1.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=dbXXXX.db.1and1.com,1433;
Integrated Security=false;
initial catalog=database_name;
user id=dboXXXX;
password=valid_password;
multipleactiveresultsets=True"" />
By including the assemblyname for my code in the sections above (the brackets ('<' and '>') should not be included), I was able to finally get it to work.
Thanks all for your assistance.
Here is what actually works on 1and1 server from ASP.NET Code first design. So, simply replace your serverName, DatabaseName, UserID, and Password.
<add name="DefaultConnection"
connectionString="Data Source=dbXXX.db.1and1.com,1433;Initial Catalog=dbYYYYY;Integrated Security=False;user id=dboZZZZZ;password=YOURDBPASSWORD;MultipleActiveResultSets=True;Application Name=EntityFramework"
providerName="System.Data.SqlClient" />
Hope this can help anyone looking to use 1and1 asp.net server since their customer service is pretty useless.

ASP.NET Wepapplication with on-disk database - how?

How can I use an .mdf file (called SQL Server Database in VS2012) for Entity Framework?
I get this error message:
Invalid value for key 'attachdbfilename'.
This is my connectionstring:
<add name="DbContainer" connectionString="metadata=res://*/Database.Db.csdl|res://*/Database.Db.ssdl|res://*/Database.Db.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDb)\v11.0;initial catalog=DataContext;Integrated Security=True;AttachDBFilename=|DataDirectory|\DataContext.mdf;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />.
In Global.asax.cs, Application_Start I set the correct path for |DataDirectory| like this:
string newPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data");
AppDomain.CurrentDomain.SetData("DataDirectory", newPath);
Do any of you know to make this work?
Btw. it works when running my web application locally (i.e. debug), and does not work when publishing to my online domain.
If it works locally but not online, the problem is from data source part of your connection string. And if you want to attach your db at runtime, not by management studio, remove the initial catalig part. So change it to something like the following:
<add name="DbContainer"
connectionString="metadata=res://*/Database.Db.csdl|res://*/Database.Db.ssdl
|res://*/Database.Db.msl;provider=System.Data.SqlClient;
provider connection string="data source=RemoteServerInstance;
Integrated Security=True;AttachDBFilename=|DataDirectory|\DataContext.mdf;
MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />

SQL Express connection string hell ASP.Net

SQL Express 2005 is running locally. I have a project written by another person running on the same machine. All I want to do is connect to it, can't be that hard right?
This is the one I use in my old classic ASP code to hit another database running on the same instance:
Provider=SQLOLEDB;Data Source=MYLAPTOP\MSSMLBIZ;Persist Security Info=True;User ID=TestUser;Password=letmein;Initial Catalog=TestDB
But trying a version of that makes the .net code throw a wobbler as he's written it using SQLServer drivers so its not liking the Provider stuff.
Here is the orginal connection string from his code:
Server=(local);Initial Catalog=TheDatabase;User Id=TheUser;Password=ThePassword;
I've been to http://www.connectionstrings.com/sql-server-2005 and tried several of the options from there, these all get "SQL Server does not exist or access denied" (what a lovely mixed error message that is!):
Data Source=localhost;Integrated Security=True;Initial Catalog=TheDatabase
Data Source=localhost\SQLEXPRESS;Integrated Security=True;Initial Catalog=TheDatabase
Data Source=MyLaptop\SQLEXPRESS;Integrated Security=True;Initial Catalog=TheDatabase
Server=MyLaptop\SQLEXPRESS;Initial Catalog=TheDatabase;User Id=TheUser;Password=ThePassword;
I've created logins for MyLaptop/IUSR_MyLaptop, MyLaptop/ASPNET, MyLaptop/IWAM_MyLaptop in SQL Express and given them all read/write permissions to my DB and set their default DB to be TheDatabase.
What the heck am I doing wrong and how can I debug the problem some more?
UPDATE: Special Thanks to Chris for all his pointers, got there in the end, if you are having similar problem please read all the comments there are lots of links and tips on how to track them down.
Can you advise exactly what is in the config?
Are you using the block - in which case a valid connection string would be:
<add name="connection" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\MSSMLBIZ;Initial Catalog=TheDatabase;Integrated Security=True" />
or
<add name="connection" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\MSSMLBIZ;Initial Catalog=TheDatabase;Integrated Security=False;User Id=TheUser;Password=ThePassword;Application Name=AppName;" />
Or are you getting the connection string from app settings - in which case I guess your provider is set in code inside the app itself?
With that error message in your comment you should run through the items in http://blogs.msdn.com/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx
I presume the instance is running and does allow connections over tcpip?
Shouldn't your datasource read: Data Source=localhost\sqlexpress too?
You don't mention granting rights for 'TheUser' to access the database on the server - if you're restored from another server you may had a sid mismatch.
Try running
sp_update_users_login 'report'
against the db in question.
If it returns the user account in the report try:
sp_update_users_login 'update_one', 'theuser', 'theuser'
to remap things.

Resources