14

私のWebサイトはVS2012で構築された.net4.5mvcサイトです。app_dataフォルダーにSQLServerCompactDBがあります。すべてが私のローカルホストでうまく機能します。Azure Webサイトにデプロイすると、このエラーが発生しますか?

要求された.NetFrameworkデータプロバイダーが見つかりません。インストールされていない可能性があります。

私はそれをグーグルで検索し、多くの可能な答えを得ましたが、AzureとSQLServerCompactに固有のものはありません。だから私の質問は簡単です。Azure共有ホスティングサーバーにデプロイされているWindowsAzureWebサイトは、SQL Server Compactをサポートしていますか?もしそうなら、私は前述のエラーを排除し、それを機能させるために何をする必要がありますか?

4

3 に答える 3

19

WindowsAzureでSQLServerCompactを使用することは確かに可能です。ただし、次のことを自問する必要があります。

データベース内の何かを変更しますか?
これには、データの追加、更新、削除が含まれます。その場合は、 WindowsAzureでSQLServerCompactを使用しないでください。なぜなら、WindowsAzureでSQLServer Compactを使用してデータベース内の何かを変更すると、次の2つの問題が発生するからです。

  1. データは複製されません。
  2. データを失うリスクがあります。

データは複製されません
データベース内の何かを変更しても、変更はローカルのままです。つまり、Webアプリケーションを実行しているインスタンスが複数ある場合、各Webアプリケーションには独自のデータベースがあり、そのうちの1つで何かを変更しても、変更は他のインスタンスに複製されないため、予期しない動作が発生します。アプリケーションで。

データが失われる
リスク展開後にデータベース内の何かを変更すると、Windows Azureがインスタンスを別の仮想マシンまたは物理マシンに再展開することを決定する可能性があるため、データが失われるリスクがあります。これが発生すると、新しいインスタンスは、最初にWindows Azureにアップロードした展開パッケージでセットアップされます。このパッケージには、データベースに加えた変更は含まれていません。そして、この再配置は、いくつかの理由でいつでも発生する可能性があります。

結論
では、Azure上のSQL Compact?もちろん、データが読み取り専用であれば問題ありません。ただし、SQLAzureで得られるパフォーマンスは得られないことに注意してください。ただし、将来的にニーズが変化した場合は、いつでもアプリケーションをSQLServerCompactからSQLAzureに移行できます。

WindowsAzureでSQLServerCompactを使用する場合は、「ErikEJ」のブログで説明されているように、「プライベート展開」方式を使用できます。

編集: Microsoftは、Azureサブスクリプションごとに1つの無料の20 MBSQLAzureデータベースを提供することを発表しました。これは、サブスクリプションを作成し、無料のSQLAzureデータベースを使用して無料のWebサイトを作成できることを意味します。(20 MB未満である限り)同じSQLAzureデータベースに複数のWebサイトを無料で関連付けることもできます。したがって、データベースが非常に小さく、100 MBのデータベースにお金をかけたくないという理由で、WindowsAzureでSQLServer Compactを検討している場合は、このオプションを検討できます。ほとんどの場合、それはより良い解決策になります。Webサイトのパフォーマンスが向上し、データベースのパフォーマンスが向上し、データを変更して複製することができます。

于 2013-06-01T15:33:26.040 に答える
5

Azure上のSQLServerCompact4.0で可能です!!

そのための記事を書きます

そしてこれは私が見つけた英語版です

いくつかのステップで:

以下は私の調査後の解決策です:

このようにステップバイステップ:

  1. 2つのnugetをインストールします:EntityFrame.SqlServerCompactとMicrosoft SQL Server Compact Edition

  2. SQLデータベースファイル(.sdf / .mdf)をAPP_Dataフォルダーに配置します (使用するには、次のように接続文字列を配置します。

    <add name ="DefaultConnection" connectionString ="Data Source=|DataDirectory|CompactDB.sdf" providerName ="System.Data.SqlServerCe.4.0" />)
    
  3. 上記のSQLデータベースファイルを含む完全なプロジェクトをAzureWebsitesに公開します。

  4. あなたはそれがうまく機能し、完全に無料であることがわかります。

于 2014-10-03T04:59:31.143 に答える
2

MicrosoftAzureの2番目のWenchaoZengは、SQLCompactをサポートしていません。

一度使用することもできますが、Windows Azureはデータのレプリケーションで動作し(これはクラウドです、覚えていますか?)、SQL CEはこの機能をサポートしていないため、これはお勧めしません。Sql CEをAzureに配置できる場合、非同期のためにアクセスできないか、ユーザーにデータが古くなっているか壊れていることが表示されることがあります。

最善の方法は、Azure SqlouBLOBストレージ使用することです。

于 2013-03-03T06:11:37.737 に答える