私はここで質問してきましたが、私の問題を扱うものはまだありません。謝罪しています。 。Entity Framework MigrateDatabaseToLatestVersion CREATE DATABASE権限がデータベース 'master'エラーで拒否されました
私はEntity Framework Code Firstを持つASP.Net MVCプロジェクトを持っています。 私のDbcontextに私が持っている;
public Context() : base("DatabaseName")
{
System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>());
}
私のウェブ設定には次のものがあります。
<connectionStrings>
<add name="DatabaseName" connectionString="connsection string is here"/>
</connectionStrings>
私のアプリケーションがデプロイされると
、私が取得エラー
マスターのデータベースに拒否されたCREATE DATABASE権限を '' ' とすぐにContextに初めてアクセスしようとします。
私が理解できないことは、データベースを作成しようとするのを止め、それに与えられた接続文字列を使用することです。データベースは既に存在しているので(共有ホスティングのため、それ以上の制御はできません)、同じ接続文字列を使用してHangfireを同じアプリケーションにインストールしてもテーブルが正常に作成されたため、接続文字列が正しいことがわかります何らかの理由でEFはデータベースにテーブルを作成せず、代わりにテーブルを作成しようとします。
Entity Frameworkは、設定ファイルと同じプロジェクトにインストールされますが、実際は単一のプロジェクトアプリケーションです。
HangfireがEFの使用を妨げているが同じ問題があった場合に備えて、別のデータベースを作成して2番目の接続文字列を追加しようとしました。また、コンテキスト上で完全な接続文字列を直接:base("")
に入れてみましたが、効果はありません。
を追加
名前でWeb.config
ファイルにconnectionString
を取得してみてください、あなたは、ローカルDBまたはSQL ServerのDBにアクセスしようとしていますか? – Usman
それはホストとは別のマシン上のSQLサーバのdbです –