2012-10-13 13 views
39

Sto sviluppando un sito Web ASP.NET MVC, che desidero ospitare su siti Web di Azure. Mentre in fase di sviluppo, sono stato utilizzando un file MDF nella mia directory App_Data con una stringa di connessione simile a questo:Utilizzo di un file MDF LocalDb su Azure

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=MyApp;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MyApp.mdf;MultipleActiveResultSets=true" providerName="System.Data.SqlClient" /> 

di provarlo su Azure, speravo che potrei lasciare questa stringa di connessione come è, e semplicemente FTP my MyApp.mdf nella cartella App_Data in Azure, poiché è tutto configurato con i dati di esempio che desidero utilizzare. Tuttavia, quando ho provato ad accedere al mio sito, mi sono imbattuto nel seguente errore:

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: 52 - Unable to locate a LocalDB installation. Verify that SQL Server Express is properly installed and that the LocalDB feature is enabled.)

La mia domanda è, c'è un modo posso correre il mio sito web Azure connessione a un file MDF nella mia cartella App_Data, o sono Mi sono imposto di utilizzare un database SQL di Azure?

risposta

30

Non è possibile utilizzare un file .mdf in App_Data, ma non si è obbligati a SQL Azure: è possibile utilizzare SQL Server Compact. La distribuzione da LocalDB a Compatto è facile se utilizzi Code First Migrations; in caso contrario sarà necessario eseguire la migrazione a SQL Server Compact prima della distribuzione. Se si decide di andare con Compact si dovrà assicurarsi che il motore di database viene distribuito, e si possono trovare le istruzioni per che in questo tutorial:

http://www.asp.net/mvc/tutorials/deployment/deployment-to-a-hosting-provider/deployment-to-a-hosting-provider-deploying-sql-server-compact-databases-2-of-12

+1

Cosa connectionString avrebbe dovuto usare? Sto pubblicando su myasp.net e non so cosa usare. My connectionString è: ' '? – Yoda

+0

@ Yoda, la stringa di connessione non è per il provider richiesto, controllare [MSDN] (http://msdn.microsoft.com/en-us/library/jj653752 (v = vs.110) .aspx # sqlce), troverà l'esempio di stringa di connessione '' '' SqlServerCompact''''. – Gabrielius

+3

È ancora vero nel 2015? Ho appena visto una stringa di connessione predefinita in Kudu chiamata 'LocalSqlServer' con' ... AttachDBFilename = | DataDirectory | aspnetdb.mdf ... 'e ho riattaccato. Sto già utilizzando SQLCE ma preferirei collegare un mdf SQLEXPRESS nel mio sito Web di Azure. – twamley

2

È necessario utilizzare SQL Azure per utilizzare le funzionalità Siti Web/Servizio cloud.

Se non lo hai già, probabilmente vorrai dare un'occhiata alle trasformazioni di web.config con la distribuzione del web per facilitare l'esperienza di pubblicazione.

http://msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx

http://www.hanselman.com/blog/TinyHappyFeatures3PublishingImprovementsChainedConfigTransformsAndDeployingASPNETAppsFromTheCommandLine.aspx

È possibile importare i dati in SQL Azure database tramite gli strumenti di gestione o se si utilizza SQL Server 2012 è possibile importare dati/export attraverso il portale.

Problemi correlati