4

Azure ポータルで最初にデータベースを使用して Web アプリを公開する手順を実行しました。

ただし、公開すると、次のエラー メッセージが表示されます。

Database First および Model First 開発用の T4 テンプレートを使用して生成されたコードを Code First モードで使用すると、正しく動作しない場合があります。Database First または Model First を引き続き使用するには、実行中のアプリケーションの構成ファイルで Entity Framework 接続文字列が指定されていることを確認してください。Database First または Model First から生成されたこれらのクラスを Code First で使用するには、属性または DbModelBuilder API を使用して追加の構成を追加してから、この例外をスローするコードを削除します。

パブリッシュによって変更された後の web.config の接続文字列:

<add name="MySiteEntities" connectionString="metadata=res://*/MySite.csdl|res://*/MySite.ssdl|res://*/MySite.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=tcp:**********.database.windows.net,****;initial catalog=MySite;user id=username@**********;password=*******;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

私のコンテキスト(edmxによって生成された):

public partial class MySiteEntities : DbContext
{
    public MySiteEntities()
        : base("name=MySiteEntities")
    {
    }
...

エンティティ フレームワークが最初にデータベースではなくコードを使用しようとしているように見えるので、私は非常に混乱しています。

更新: ローカルで同じ接続文字列を使用してみましたが、Web アプリは正常に動作しているようです。Web アプリはリモート データベースに正常に接続します。失敗するのは、紺碧に公開したときだけです。

4

3 に答える 3

0

そのはず:

        <connectionStrings>
            <add name="MyDatabaseModelEntities" 
                       connectionString="metadata=res://*/MyDBModel.csdl|res://*/MyDBModel.ssdl|res://*/MyDBModel.msl;
                       provider=System.Data.SqlClient;
                       provider connection string=&quot;
                       Data Source=<provideServerName>.database.windows.net;
                       Initial Catalog=MyDatabase;
                       Integrated Security=False;
                       User ID=<provideUserID>;
                       Password=providePassword>;
                       MultipleActiveResultSets=True;
                       Encrypt=True;
                       TrustServerCertificate=False&quot;" 
                       providerName="System.Data.EntityClient"/>
        </connectionStrings>
于 2013-04-01T09:39:34.233 に答える
0

ローカルの web.config で接続文字列をリモート (Azure) に変更し、公開中にすべての設定された接続文字列を削除して、web.config を公開しました。remove web.config を書き換えます。次に、ローカル web.config の接続文字列をローカル接続に戻します。今はうまくいきます。

于 2013-08-13T14:42:06.910 に答える