Azure WebサイトでホストするASP.NET MVC Webサイトを開発しています。開発中に、App_DataディレクトリでMDFファイルを使用して、次のような接続文字列を使用しました。
<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" />
Azureで試してみるには、この接続文字列をそのまま残して、MyApp.mdfを単にAzureのApp_DataフォルダーにFTPで送信できるようにしたいと考えていました。ただし、自分のサイトにアクセスしようとすると、次のエラーが発生しました。
SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:52-LocalDBインストールが見つかりません。SQLServer Expressが正しくインストールされ、LocalDB機能が有効になっていることを確認してください。)
私の質問は、App_Dataフォルダー内のMDF=ファイルに接続するAzure Webサイトを実行する方法はありますか、またはAzure SQLデータベースを使用する必要がありますか?
App_Dataで.mdfファイルを使用することはできませんが、SQL Azureを使用する必要はありません。SQLServer Compactを使用できます。 Code First Migrationsを使用している場合、LocalDBからCompactへの展開は簡単です。それ以外の場合は、展開する前にSQL Server Compactに移行する必要があります。 Compactを使用する場合は、データベースエンジンを展開する必要があります。そのための手順は、このチュートリアルに記載されています。
Webサイト/クラウドサービス機能を使用するには、SQL Azureを使用する必要があります。
まだ公開していない場合は、Web展開を使用したweb.config変換を見て、公開作業を簡単にすることができます。
http://msdn.Microsoft.com/en-us/library/dd465318(v = vs.100).aspx
管理ツールを使用してSQL Azure DBにデータをインポートできます。SQLServer 2012を使用している場合は、ポータルを介してデータをインポート/エクスポートできます。