4

私はasp mvc 3初心者です。いくつかのチュートリアルを行ったので、サイトを構築して学習を続ける準備ができました。

すべてのチュートリアルで、SQL CE または SQL Express DB に接続します。しかし、私は自分のサイトで SQL サーバー上に DB を構築したいと考えています。

MyDB と呼ぶネットワーク サーバー上にデータベースを作成しました。次に、次のように Web 構成ファイルに接続文字列を設定します。

add name="ApplicationServices"
    connectionString="Data Source=Server\ServerInstance;Initial Catalog=MyDB;Integrated Security=True"
    providerName="System.Data.SqlClient"

モデルと足場コントローラーを作成しました。

次のような単純な DataBaseContext を作成しました。

Imports System.Data.Entity

Public Class DatabaseContext
    Inherits DbContext

    Public Property Employee As DbSet(Of Employee)
    Public Property AnnualLeave As DbSet(Of AnnualLeave)

End Class

しかし、足場コントローラーで次の行にヒットすると、エラーが発生します。

 Function Index() As ViewResult
    Return View(db.Employee.ToList()) //CREATE DATABASE permission denied in database 'master'`.
 End Function
  1. MyDB データベースのアクセス許可を変更して、これを修正する必要がありますか? これは SQL サーバー側の権限の問題ですか? DB が既に存在するため、データベースの作成エラーが発生する理由がわかりません。
  2. このエラーは、既にデータベースを作成しているために発生していますか? 足場は何らかの方法でデータベースを作成したいですか?
4

4 に答える 4

4

エラーメッセージによって新しいDBを作成しようとしているようです。プロジェクトで最初にEFコードを使用し、その移行機能を使用してDBを構築していると思います。EFコンテキストの設定をチェックして、接続文字列を使用していることを確認してください。

接続文字列またはその名前は、DbContextのコンストラクターに渡すことができます。デフォルトのコンストラクターを使用している場合は、派生コンテキストクラスの名前と同じ名前の接続文字列を検索します。基本的に、接続文字列が派生したdbcontextクラスと同じ名前であり、それが見つかるはずです。

追加情報については、この投稿を参照してください

于 2012-08-13T20:41:10.637 に答える
3

1. IIS アプリケーション プール ID を ASP.NET 統合モードに設定する必要があります。

2.IIS APPPOOL\ASP.NET の SQL Server にログインを追加します。

3.SQL Server で、IIS APP POOL ログインを dbcreator ロールに設定します。

于 2013-11-21T04:39:41.687 に答える
0

マスターを使用します。EXECUTE sp_addsrvrolemember @loginame = N'YourAppUserLogin', @rolename = N'dbcreator';

于 2015-07-08T22:10:27.353 に答える