2012-10-13 122 views
39

Estoy desarrollando un sitio web ASP.NET MVC, que deseo alojar en los sitios web de Azure. Mientras que en el desarrollo, he estado usando un archivo MDF en mi directorio App_Data con una cadena de conexión con este aspecto:Uso de un archivo LocalDb MDF en 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" /> 

Para probarlo en Azure, esperaba que pudiera salir de esta cadena de conexión como es, y simplemente envíe mi MyApp.mdf por FTP a la carpeta App_Data en Azure, ya que está todo configurado con los datos de ejemplo que deseo usar. Sin embargo, cuando traté de acceder a mi sitio, me encontré con el siguiente 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: 52 - Unable to locate a LocalDB installation. Verify that SQL Server Express is properly installed and that the LocalDB feature is enabled.)

Mi pregunta es, ¿hay alguna manera de ejecutar mi página web Azure se conecta a un archivo MDF en mi carpeta App_Data, o soy ¿Forcé a usar una base de datos SQL de Azure?

Respuesta

30

No puede usar un archivo .mdf en App_Data, pero no está obligado a SQL Azure: puede usar SQL Server Compact. La implementación de LocalDB a Compact es fácil si está utilizando Code First Migrations; de lo contrario, deberá migrar a SQL Server Compact antes de implementar. Si usted decide ir con Compact usted tiene que asegurarse de que el motor de base de datos se despliega y se pueden encontrar instrucciones para que en este 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

Lo connectionString debe usar? Estoy publicando en myasp.net y no sé qué usar. My connectionString es: ' '? – Yoda

+0

@Yoda, su cadena de conexión no es para el proveedor requerido, consulte [MSDN] (http://msdn.microsoft.com/en-us/library/jj653752 (v = vs.110) .aspx # sqlce), usted encontrará un ejemplo de cadena de conexión '' '' SqlServerCompact''''. – Gabrielius

+3

¿Sigue siendo así en 2015? Acabo de ver una cadena de conexión predeterminada en Kudu llamada 'LocalSqlServer' con' ... AttachDBFilename = | DataDirectory | aspnetdb.mdf ... 'y me animé. Ya estoy usando SQLCE, pero preferiría adjuntar un mdf SQLEXPRESS en mi sitio web de Azure. – twamley

2

Deberá usar SQL Azure para usar las funciones de Sitios web/Servicio en la nube.

Si no lo ha hecho, probablemente querrá echarle un vistazo a las transformaciones web.config con implementación web para facilitar la publicación.

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

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

Puede importar sus datos en la base de datos SQL Azure a través de las herramientas de gestión o si está utilizando SQL Server 2012 puede importar/exportación de datos a través del portal.

Cuestiones relacionadas