porta - Soporte para SQL Server Compact 4.0 en Azure
portal azure web (3)
Mi sitio web es un sitio de .net 4.5 mvc construido con VS 2012. Tengo un SQL Server Compact DB en mi carpeta app_data. Todo funciona muy bien en mi localhost. ¿Implemento en el sitio web de Azure y obtengo este error?
No se puede encontrar el Proveedor de datos de .Net Framework solicitado. No puede ser instalado.
Lo busqué en Google y obtuve muchas respuestas posibles, pero ninguna específica para Azure y el servidor SQL compacto. Entonces mi pregunta es simple. ¿Admite SQL Server Compact un sitio web de Windows Azure que se implementa en un servidor de alojamiento compartido de Azure? Si es así, ¿qué debo hacer para eliminar el error antes mencionado y hacerlo funcionar?
¡Es posible que SQL Server Compact 4.0 en Azure!
Escribo un artículo para ello
Y esta es la versión en inglés que encontré
Por pocos pasos:
A continuación está la solución después de mi investigación:
Paso a paso como este:
Instale dos nuget: EntityFrame.SqlServerCompact y Microsoft SQL Server Compact Edition
ponga su archivo de base de datos SQL (.sdf / .mdf) en la carpeta APP_Data (Ponga la cadena de conexión así para usarla:
<add name ="DefaultConnection" connectionString ="Data Source=|DataDirectory|CompactDB.sdf" providerName ="System.Data.SqlServerCe.4.0" />)
El proyecto completo de publicación incluye el archivo de base de datos SQL anterior en AzureWebsites.
puedes encontrar que puede funcionar bien y es totalmente gratis.
Ciertamente es posible usar SQL Server Compact en Windows Azure. Sin embargo, debes preguntarte:
¿Cambiaré algo en la base de datos?
Esto incluye agregar, actualizar y eliminar datos. Si lo hace, no debe usar SQL Server Compact en Windows Azure. Porque si usa SQL Server Compact en Windows Azure y cambia algo en la base de datos, se encontrará con dos problemas:
- Los datos no son replicados.
- Te arriesgas a perder datos.
Los datos no se replican
Si cambia algo en la base de datos, los cambios se mantienen locales. Esto significa que si tiene varias instancias ejecutando su aplicación web, entonces cada aplicación web tendrá su propia base de datos, y si cambia algo en una de ellas, el cambio no se replicará en otras instancias, lo que dará como resultado un comportamiento impredecible. en tu aplicación.
Te arriesgas a perder datos
Si cambia algo en la base de datos después de la implementación, corre el riesgo de perder datos, porque Windows Azure podría decidir volver a implementar su instancia en otra máquina virtual o física. Cuando esto sucede, la nueva instancia se configurará con el paquete de implementación que originalmente cargó en Windows Azure, y este paquete no contiene ningún cambio que realice en la base de datos. Y este redespliegue puede ocurrir en cualquier momento por varias razones.
Conclusión
Entonces, SQL Compact en Azure? Claro, no hay problema si tus datos son de solo lectura . Sin embargo, tenga en cuenta que no obtendrá el rendimiento que tendría con SQL Azure. Pero si su necesidad cambia en el futuro, siempre puede migrar su aplicación de SQL Server Compact a SQL Azure.
Si desea utilizar SQL Server Compact con Windows Azure, puede utilizar el método de " implementación privada ", como se explica en el blog "ErikEJ".
Editar: Microsoft ha anunciado que ahora ofrecen 1 base de datos gratuita SQL Azure de 20 MB para cada suscripción de Azure. Esto significa que puede crear una suscripción y crear un sitio web gratuito, con una base de datos SQL Azure gratuita. (Siempre y cuando sea inferior a 20 MB) También puede tener varios sitios web asociados con la misma base de datos de SQL Azure de forma gratuita. Por lo tanto, si está considerando SQL Server Compact en Windows Azure porque su base de datos será muy pequeña y no desea pagar por una base de datos de 100 MB, puede considerar esta opción. En la mayoría de los casos, será una mejor solución. Su sitio web tendrá un mejor rendimiento, el rendimiento de su base de datos será mejor y usted tendrá la capacidad de cambiar sus datos y será replicado.
El segundo Wenchao Zeng de Microsoft, Azure, no es compatible con Sql Compact.
Podría usarlo una vez, pero esto no se recomienda porque Windows Azure funciona con la replicación de los datos (esta es la nube, ¿recuerdas?) Y el Sql CE no admite esta funcionalidad . Si puede poner un Sql CE en Azure, a veces no tendrá acceso o los usuarios ven datos desactualizados o rotos debido a la asincrónica.
La mejor forma es utilizar el almacenamiento Azure Sql ou BLOB .