2012-10-13 6 views
39

Ich entwickle eine ASP.NET MVC-Website, die ich auf Azure-Websites hosten möchte. Während in der Entwicklung, habe ich in meinem Verzeichnis App_Data eine MDF-Datei wurde unter Verwendung von mit einer Verbindungszeichenfolge wie folgt aussehen:Verwenden einer LocalDb-MDF-Datei auf 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" /> 

es auf Azure auszuprobieren Ich hatte gehofft, ich, wie ist diese Verbindungszeichenfolge verlassen konnte, und Übertragen Sie einfach MyApp.mdf in den App_Data-Ordner auf Azure, da alles mit den Beispieldaten konfiguriert ist, die ich verwenden möchte. Allerdings, wenn ich versuchte, meine Website zugreifen, ich lief in den folgenden Fehler:

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.)

Meine Frage ist, gibt es eine Möglichkeit, ich kann meine Azure Website eine Verbindung zu einer MDF-Datei in meinem Ordner App_Data laufen, oder bin Ich habe gezwungen, eine Azure SQL-Datenbank zu verwenden?

Antwort

30

Sie können keine .mdf-Datei in App_Data verwenden, aber Sie werden nicht zu SQL Azure gezwungen - Sie können SQL Server Compact verwenden. Die Bereitstellung von LocalDB auf Compact ist einfach, wenn Sie Code First Migrations verwenden. Andernfalls müssen Sie vor der Bereitstellung zu SQL Server Compact migrieren. Wenn Sie mit Compact gehen zu entscheiden werden Sie müssen die Datenbank-Engine eingesetzt wird sicherstellen, und Sie können in diesem Tutorial Anleitung dafür finden:

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

Welche Connection sollte er benutzen? Ich veröffentliche zu myasp.net und ich weiß nicht, was ich verwenden soll. Meine connectionString ist: ' '? – Yoda

+0

@Yoda, Ihre Verbindungszeichenfolge ist nicht für den erforderlichen Anbieter, überprüfen Sie [MSDN] (http://msdn.microsoft.com/en-us/library/jj653752 (v = vs.110) .aspx # sqlce), Sie findet '' '' 'SqlServerCompact''''s Verbindungsbeispiel. – Gabrielius

+3

Gilt das noch 2015? Ich habe gerade eine Standardverbindungszeichenfolge in Kudu mit dem Namen 'LocalSqlServer' mit' ... AttachDBFilename = | DataDirectory | aspnetdb.mdf ... 'gesehen und ich bin aufgegangen. Ich verwende bereits SQLCE, möchte aber lieber ein SQLEXPRESS MDF auf meiner Azure-Website anhängen. – twamley

2

Sie müssen SQL Azure verwenden, um die Websites/Cloud-Service-Funktionen zu verwenden.

Wenn Sie dies noch nicht getan haben, sollten Sie sich die web.config-Transformationen mit Web-Deployment ansehen, um das Publishing zu erleichtern.

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

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

Sie können Ihre Daten in die SQL Azure DB über die Management-Tools importieren oder wenn Sie SQL Server 2012 verwenden können Sie/Export von Daten über das Portal importieren.