2012-10-13 15 views
39

Zajmuję się tworzeniem strony internetowej ASP.NET MVC, którą chcę hostować na stronach internetowych Azure. Choć w rozwoju, byłem przy użyciu pliku MDF w moim katalogu App_Data z ciągiem połączenie wygląda tak:Używanie pliku MDD LocalDb na platformie 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" /> 

Aby go wypróbować na Azure, miałem nadzieję, że może opuścić ten ciąg połączenia, jak jest, i po prostu prześlij mój plik MyApp.mdf do folderu App_Data na platformie Azure, ponieważ jest on skonfigurowany z przykładowymi danymi, których chcę użyć. Jednak, kiedy próbował uzyskać dostęp do mojej strony, wpadłem na następujący błąd:

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

Moje pytanie brzmi, czy istnieje sposób mogę uruchomić mój Azure internetową łączącą do pliku MDF w moim folderze App_Data, czy jestem Zmusiłem do korzystania z bazy danych Azure SQL?

Odpowiedz

30

Nie możesz użyć pliku .mdf w App_Data, ale nie jesteś zmuszony do SQL Azure - możesz użyć SQL Server Compact. Wdrożenie z LocalDB do Compact jest łatwe, jeśli korzystasz z Code First Migrations; w przeciwnym razie przed wdrożeniem konieczne będzie przeprowadzenie migracji do programu SQL Server Compact. Jeśli zdecydujesz się pójść z Compact musisz upewnić się, że silnik bazy danych zostanie wdrożony, a można znaleźć instrukcje, które w tym tutorialu:

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

Co connectionString powinien używać? Publikuję na myasp.net i nie wiem, czego używać. Mój connectionString to: ' '? – Yoda

+0

@Yoda, twój ciąg połączenia nie jest dla wymaganego dostawcy, sprawdź [MSDN] (http://msdn.microsoft.com/en-us/library/jj653752 (v = vs.110) .aspx # sqlce), ty znajdzie przykład łańcucha połączenia '' 'SqlServerCompact''''. – Gabrielius

+3

Czy to nadal prawda w 2015 roku? Właśnie zobaczyłem domyślny ciąg połączenia w Kudu o nazwie 'LocalSqlServer' z' ... AttachDBFilename = | DataDirectory | aspnetdb.mdf ... 'i podniosłem się. Używam już SQLCE, ale wolałbym dołączyć mdf SQLEXPRESS do mojej witryny Azure. – twamley

2

Będziesz musiał użyć SQL Azure do korzystania z funkcji Witryny/Usługa w chmurze.

Jeśli jeszcze tego nie zrobiłeś, prawdopodobnie zechcesz rzucić okiem na transformacje web.config z wdrożeniem sieci, aby ułatwić korzystanie z publikacji.

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

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

można importować dane do SQL Azure DB za pomocą narzędzi do zarządzania lub jeśli używasz SQL Server 2012 można importować dane/eksport za pośrednictwem portalu.

Powiązane problemy