Simple Membership を有効にし、App_Data ディレクトリにある SQL Server CE データベースを指す C# .Net Web アプリケーションを開発しました。サイトをローカルで実行すると問題なく、アプリケーションに登録してログオンできます。問題は、Azure に発行すると、ログオンしようとすると次のエラーが表示されることです。
インデックス 0 から始まる初期化文字列の形式が仕様に準拠していません
そのため、少し検索しましたが、この問題に対する特定の解決策が見つかりません。私の web.config のスニペットには、次のものが含まれています。
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="enableSimpleMembership" value="true" />
</appSettings>
<DbProviderFactories>
<clear />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
<connectionStrings>
<add name="MySQLOrderTrackerConnectionString" connectionString="XXXX;Database=OrderTracker;uid=XXXX;pwd=XXXX" providerName="MySql.Data.MySqlClient" />
<add name="MembershipConnectionString" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=|DataDirectory|\Membership.sdf;password=XXXX" />
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient" />
</connectionStrings>
また、理解できないのは、Azure に公開すると、DefaultConnection 接続文字列が表示されることです。どこから来たの?しかし、ここでの主な問題は、初期化文字列の問題を解決する方法です。何か案は?