2017-02-15 21 views
1

私はここで質問してきましたが、私の問題を扱うものはまだありません。謝罪しています。 。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("")に入れてみましたが、効果はありません。

+0

を追加Web.configファイルにconnectionString

名前で
public Context() :base("name=DbConnection") { } 

を取得してみてください、あなたは、ローカルDBまたはSQL ServerのDBにアクセスしようとしていますか? – Usman

+0

それはホストとは別のマシン上のSQLサーバのdbです –

答えて

0

<connectionStrings> 
    <add name="DbConnection" connectionString="Data Source=serveraddress;Persist Security Info=False;User ID=usename;Password=pass;Initial Catalog=databasename" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
関連する問題